Oracle數(shù)據(jù)庫中的HAVING子句用于對分組后的結(jié)果進(jìn)行篩選。它通常與GROUP BY子句一起使用,以便對聚合函數(shù)(如SUM、AVG、COUNT等)的結(jié)果進(jìn)行限制。HAVING子句的語法與WHERE子句相似,但它允許使用聚合函數(shù),并且其條件是在分組之后進(jìn)行評估的。
以下是Oracle數(shù)據(jù)庫HAVING子句的基本語法:
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[GROUP BY column1, column2, ...]
[HAVING condition];
其中:
column1, column2, ...
:要選擇的列名。table_name
:要查詢的表名。WHERE condition
:可選的WHERE子句,用于在分組之前篩選行。GROUP BY column1, column2, ...
:指定要按其分組的列名。HAVING condition
:HAVING子句,用于在分組之后篩選組。注意,HAVING子句中不能使用聚合函數(shù)的別名,而應(yīng)直接使用函數(shù)名。以下是一個使用HAVING子句的示例:
SELECT department_id, SUM(salary) AS total_salary
FROM employees
WHERE hire_date > '2000-01-01'
GROUP BY department_id
HAVING SUM(salary) > 5000;
在這個示例中,我們首先從employees
表中選擇department_id
和salary
列,然后使用WHERE子句篩選出hire_date
在2000年1月1日之后的員工。接下來,我們按department_id
對結(jié)果進(jìn)行分組,并使用HAVING子句篩選出總工資超過5000的部門。