You can use a WHERE clause in a statement with GROUP BY. The WHERE clause is evaluated before the GROUP BY clause. Rows that do not satisfy the conditions in the WHERE clause are eliminated before any grouping is done. Here is an example:
SELECT Name, AVG( UnitPrice ) FROM Products WHERE ID > 400 GROUP BY Name;
Only the rows with ID values of more than 400 are included in the groups that are used to produce the query results.
The following query illustrates the use of WHERE, GROUP BY, and HAVING clauses in one query:
SELECT Name, SUM( Quantity ) FROM Products WHERE Name LIKE '%shirt%' GROUP BY Name HAVING SUM( Quantity ) > 100;
In this example:
The WHERE clause includes only rows that have a name including the word shirt (Tee Shirt, Sweatshirt).
The GROUP BY clause collects the rows with a common name.
The SUM aggregate calculates the total quantity of products available for each group.
The HAVING clause excludes from the final results the groups whose inventory totals do not exceed 100.