Newer Version Available

This content describes an older version of this product. View Latest

HAVING

HAVING is an optional clause that can be used in a SOQL query to filter results that aggregate functions return.

With API version 18.0 and later, you can use a HAVING clause with a GROUP BY clause to filter the results returned by aggregate functions, such as SUM(). The HAVING clause is similar to a WHERE clause. The difference is that you can include aggregate functions in a HAVING clause, but not in a WHERE clause. The syntax is:

havingConditionExpression specifies one or more conditional expressions using aggregate functions to filter the query results.

For example, you can use a GROUP BY clause to determine how many leads are associated with each LeadSource value with the following query:

However, if you are only interested in LeadSource values that have generated more than 100 leads, you can filter the results by using a HAVING clause. For example:

The next query returns accounts with duplicate names:

For a list of aggregate functions supported by SOQL, see Aggregate Functions.