导读 在 SQL 查询中,`WHERE` 和 `HAVING` 都用于过滤数据,但它们的使用场景完全不同。简单来说,`WHERE` 用于筛选行,而 `HAVING` 则...
在 SQL 查询中,`WHERE` 和 `HAVING` 都用于过滤数据,但它们的使用场景完全不同。简单来说,`WHERE` 用于筛选行,而 `HAVING` 则用于筛选组(Group)。🌟
例如,当你想从数据库中找出年龄大于18岁的用户时,你会用到 `WHERE`:
```sql
SELECT FROM users WHERE age > 18;
```
但如果你需要统计每个城市用户的平均年龄,并筛选出平均年龄大于30的城市呢?这时就需要 `HAVING`:
```sql
SELECT city, AVG(age) AS avg_age FROM users GROUP BY city HAVING avg_age > 30;
```
注意,`HAVING` 必须配合聚合函数(如 `SUM`, `AVG`, `COUNT` 等)使用,因为它是在分组后进行条件过滤。而 `WHERE` 是在分组前直接过滤行数据。🤔
总结一下,`WHERE` 作用于原始数据行,而 `HAVING` 则作用于分组后的结果。灵活运用两者可以让你的查询更高效!🚀