Newer Version Available
GROUP BY
You can use GROUP BY with aggregate functions, such as SUM() or MAX(), to summarize the data and enable you to roll up query results rather than having to process the individual records in your code.
1[GROUP BY fieldGroupByList]fieldGroupByList specifies a list of one or more fields, separated by commas, that you want to group by. If the list of fields in a SELECT clause includes an aggregate function, you must include all non-aggregated fields in the GROUP BY clause.
For example, to determine how many leads are associated with each LeadSource value without using GROUP BY, you could run the following query:
1SELECT LeadSource FROM LeadYou would then write some code to iterate through the query results and increment counters for each LeadSource value. You can use GROUP BY to get the same results without the need to write any extra code. For example:
1SELECT LeadSource, COUNT(Name)
2FROM Lead
3GROUP BY LeadSourceYou can use a GROUP BY clause without an aggregated function to query all the distinct values, including null, for an object. The following query returns the distinct set of values stored in the LeadSource field.
1SELECT LeadSource
2FROM Lead
3GROUP BY LeadSource