Considerations for GROUP BY
Understand the special behavior and limitations for using the GROUP BY clause in SOQL queries.
-
Some object fields have a field type that doesn’t
support grouping. You can't include fields with these field types in a GROUP BY clause.
To check whether a field supports grouping, you can use SOAP API or REST API to make a describe call for the object that contains the field. For each field, the response includes a boolean groupable attribute that defines whether you can include the field in a GROUP BY clause. To check whether a field supports grouping for standard objects, you can also check the properties for the field in the Object Reference for Salesforce and Lightning Platform.
- You must use a GROUP BY clause if your query has
a LIMIT clause and an aggregated function. For
example, the following query is
valid:
1SELECT Name, Max(CreatedDate) 2FROM Account 3GROUP BY Name 4LIMIT 5The following query is invalid as there’s no GROUP BY clause:
1SELECT MAX(CreatedDate) 2FROM Account LIMIT 1 - You can't use child relationship expressions that use the __r syntax in a query that uses a GROUP BY clause. For more information, see Understanding Relationship Names, Custom Objects, and Custom Fields.
- In SOAP API, queries that include a GROUP BY clause can't use the queryMore() call to get more results.
- In REST API, queries that include a GROUP BY clause can’t use the query locator to get more results.
- Formula fields can't be grouped.