HAVING 子句
HAVING
子句是可选的,用于排除不满足给定条件的组行。HAVING
类似于 WHERE
子句,但 WHERE
在分组之前出现,而 HAVING
在分组之后出现。
这意味着 WHERE
子句可对所选列设置条件,而 HAVING
子句可对由 GROUP BY
子句创建的组设置条件。
以下示例展示了 HAVING
子句在 SELECT 查询中的位置:
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
HAVING
子句的基本示例:
-- 计算每个部门每个职务的平均工资
-- 筛选结果集,仅包含平均工资至少为 50000 美元的部门和职务
SELECT department, job_title, AVG(salary)
FROM employees
GROUP BY department, job_title
HAVING AVG(salary) >= 50000;
查询结果是一个包含部门、职务和平均工资列的表。每一行表示某部门某职务的平均工资,并且只返回那些平均工资超过 50000 美元的组。