The HAVING clause is used to filter the result set grouped by the GROUP BY clause. Its syntax is HAVING <condition>, where <condition> is a Boolean expression. The difference with the WHERE clause is that the HAVING clause filters groups after aggregation, while the WHERE clause filters rows before aggregation. It can be used to filter grouped result sets, perform aggregate calculations on data, create hierarchical reports, or summarize queries.

HAVING Clause in Oracle
What is HAVING clause?
The HAVING clause is part of a SQL query that filters the result set grouped by the GROUP BY clause.
The syntax of HAVING clause
<code>HAVING <condition></code>
where:
-
<condition>is a Boolean expression , used to determine which groups meet the conditions.
Purpose of HAVING clause
The HAVING clause is very useful in the following situations:
- Filtering the grouped results Set, only groups that meet certain conditions are retained.
- Perform aggregate calculations on grouped data, such as SUM(), COUNT() or AVG().
- Combine with the GROUP BY clause to create hierarchical reports or summary queries.
Differences from the WHERE clause
The WHERE clause is used to filter rows, while the HAVING clause is used to filter groups. The WHERE clause is applied before aggregation, while the HAVING clause is applied after aggregation.
Example
Suppose we have a table "sales" that contains sales data. The following query uses the HAVING clause to find customers whose total sales exceed $1,000:
<code>SELECT customer_id, SUM(sales_amount) AS total_sales FROM sales GROUP BY customer_id HAVING total_sales > 1000;</code>
In this example:
- The GROUP BY clause sorts the data by
customer_idGrouping. - SUM() aggregate function calculates the total sales for each group.
- The HAVING clause filters out groups with total sales greater than $1000.
Other usages
The HAVING clause can also be used to:
- Sort the grouped data.
- Use subqueries to filter grouped results.
- Create complex hierarchical queries.
The above is the detailed content of How to use having in oracle. For more information, please follow other related articles on the PHP Chinese website!