group by 和 having 的区别
时间: 2023-08-08 11:10:31 浏览: 116
实例详解Group by和Having子句
"GROUP BY" 和 "HAVING" 是 SQL 中用于在查询结果集中进行聚合计算的关键字。
"GROUP BY" 用于将查询结果按照指定的字段进行分组,将每个分组内的记录合并为一条记录,并对每个分组执行聚合函数(如 SUM、AVG、COUNT、MAX、MIN 等)计算。
"HAVING" 则用于在经过 GROUP BY 分组后,筛选出满足指定条件的分组。它可以用于筛选聚合结果满足指定条件的记录,而 WHERE 关键字只能用于筛选非聚合结果满足指定条件的记录。
例如,假设我们有一个员工表,其中包含员工的部门、工资等信息,要查询每个部门的平均工资,并只返回平均工资大于 5000 的部门,可以使用以下 SQL 语句:
```
SELECT department, AVG(salary) as avg_salary
FROM employee
GROUP BY department
HAVING avg_salary > 5000;
```
这条语句将员工表按照部门分组,并计算每个部门的平均工资,然后筛选出平均工资大于 5000 的部门。
阅读全文