- PostgreSQL Development Essentials
- Manpreet Kaur Baji Shaik
- 249字
- 2021-07-14 10:00:54
Using the HAVING clause
In the previous section, we discussed about GROUP BY
clause, however if you want to restrict the groups of returned rows, you can use HAVING
clause. The HAVING
clause is used to specify which individual group(s) is to be displayed, or in simple language we use the HAVING
clause in order to filter the groups on the basis of an aggregate function condition.
Note: The WHERE
clause cannot be used to return the desired groups. The WHERE
clause is only used to restrict individual rows. When the GROUP BY
clause is not used, the HAVING
clause works like the WHERE
clause.
The syntax for the PostgreSQL HAVING
clause is as follows:
SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables WHERE conditions GROUP BY expression1, expression2, ... expression_n HAVING group_condition;
Parameters or arguments
aggregate_function
can be a function such as SUM
, COUNT
, MIN
, MAX
, or AVG
.
expression1, expression2, ... expression_n
are expressions that are not encapsulated within an aggregate function and must be included in the GROUP BY
clause.
conditions
are the conditions used to restrict the groups of returned rows. Only those groups whose condition evaluates to true will be included in the result set.
Let's consider an example where you try to fetch the product that has sales>10000
:
SELECT product, SUM(sale) AS "Total sales" FROM order_details GROUP BY product Having sum(sales)>10000;
The PostgreSQL HAVING
clause will filter the results so that only the total sales greater than 10000
will be returned.