having 和 where的区别 举例子
时间: 2024-05-13 21:19:41 浏览: 126
SQL中Having与Where的区别
5星 · 资源好评率100%
"having" 和 "where" 都是 SQL 查询语言中用于过滤数据的关键字,但它们的使用场景略有不同。
"where" 用于在查询中指定筛选条件,它对查询的所有行都生效,也就是说,它会在查询结果返回之前对所有行进行筛选。例如,下面的 SQL 查询会返回所有年龄大于 18 岁的用户:
```sql
SELECT * FROM users WHERE age > 18;
```
"having" 则是用于在查询结果中指定筛选条件,它只会对查询结果中的聚合函数(如 COUNT、SUM、AVG 等)进行筛选。因此,它只能在 GROUP BY 子句中使用。例如,下面的 SQL 查询会返回所有部门人数大于 5 的部门名称和人数:
```sql
SELECT department, COUNT(*) as count FROM employees
GROUP BY department
HAVING count > 5;
```
注意,上述查询中的 "having" 关键字对 COUNT(*) 函数的结果进行了筛选,而 "where" 关键字则无法对聚合函数进行筛选。
阅读全文