Specify Conditions for Groups (Visual Database Tools)

Applies to: SQL Server

You can limit the groups that appear in a query by specifying a condition that applies to groups as a whole - a HAVING clause. After the data has been grouped and aggregated, the conditions in the HAVING clause are applied. Only the groups that meet the conditions appear in the query.

For example, you might want to see the average price of all books for each publisher in a titles table, but only if the average price exceeds $10.00. In that case, you could specify a HAVING clause with a condition such as AVG(price) > 10.

Note

In some instances, you might want to exclude individual rows from groups before applying a condition to groups as a whole. For details, see Use HAVING and WHERE Clauses in the Same Query (Visual Database Tools).

You can create complex conditions for a HAVING clause by using AND and OR to link conditions. For details about using AND and OR in search conditions, see Specify Multiple Search Conditions for One Column (Visual Database Tools).

To specify a condition for a group

  1. Specify the groups for your query. For details, see Group Rows in Query Results (Visual Database Tools).

  2. If it is not already in the Criteria pane, add the column on which you want to base the condition. (Most often the condition involves a column that is already a group or summary column.) You cannot use a column that is not part of an aggregate function or of the GROUP BY clause.

  3. In the Filter column, specify the condition to apply to the group.

    The Query and View Designer automatically creates a HAVING clause in the statement in the SQL pane, such as in the following example:

    SELECT pub_id, AVG(price)  
    FROM titles  
    GROUP BY pub_id  
    HAVING (AVG(price) > 10)  
    
  4. Repeat steps 2 and 3 for each additional condition you want to specify.

See Also

Sort and Group Query Results (Visual Database Tools)