MySQL的HAVING
语句用于在GROUP BY
子句对数据进行分组后,过滤满足特定条件的组。与WHERE
子句不同,HAVING
子句可以在过滤条件中使用聚合函数,而WHERE
子句则不能。通常,HAVING
子句与GROUP BY
子句一起使用,以实现对分组数据的高级过滤。
基本语法
SELECT 列1, 列2, ..., 聚合函数(列)
FROM 表名
WHERE 条件
GROUP BY 列1, 列2, ...
HAVING 条件
ORDER BY 列1, 列2, ...;
关键点解析
-
GROUP BY
子句:用于将结果集按照一个或多个列进行分组。 -
聚合函数:如
SUM
、COUNT
、AVG
、MAX
、MIN
等,用于对分组后的数据进行计算。 -
HAVING
子句:用于过滤分组后的结果,只能使用聚合函数或GROUP BY
中指定的列。 -
WHERE
子句:用于在分组前过滤行,不能使用聚合函数。
示例
假设有一个名为employees
的表,结构如下:
id |
---|