One more aggregate capability is often overlooked--the HAVING clause.
HAVING allows a user to perform conditional tests on aggregate values.
It is often employed in conjunction with GROUP BY. With HAVING,
you can include or exclude groups based on the aggregate value for that group.
For example, suppose you want to know all states in which you have more than
one friend. Looking at the first query in Figure ,
you can see exactly which states have more than one friend. HAVING
allows you to test the count column, as shown in Figure .
test=> SELECT state, COUNT(*)
test-> FROM friend
test-> GROUP BY state
test-> HAVING COUNT(*) > 1
test-> ORDER BY state;
state | count
-------+-------
MA | 2
NJ | 2
(2 rows)
Aggregates cannot be used in a WHERE clause; they are valid only inside HAVING.