group by的使用场景

2021-10-22  本文已影响0人  指下光年

group by的使用场景

SELECT [field1, field12, ..., ] fun_name
FROM tablename
JOIN  ON join_condition
WHERE where_conditon
GROUP BY field1, field12, ..., fieldn
[WITH ROLLUP]
[HAVING having_condition]
[ORDER BY field1, field12, ..., fieldn [ASC | DESC]]

参数说明:
SELECT 子句中的列必须为分组列(写在GROUP BY 后面的列)、聚合函数(SUM、MAX、AVG等)或常量(MySql5.7以后版本,默认是开启了only_full_group_by 模式的)。
fun_name 表示聚合函数,常见的有:SUM(总和)、AVG(平均值)、COUNT(行数)、MAX(最大值)、MIN(最小值)、GROUP_CONCAT(串联的字符串)、JSON_ARRAYAGG(将结果集作为单个JSON数组返回)、JSON_OBJECTAGG(将结果集作为单个JSON对象返回)。
GROUP BY 表示一个或多个字段对结果集进行分组,比如按照部门统计人数。
WITH ROLLUP 是可选的,表示是否对分组后的结果再进行统计。
HAVING 表示对分组的结果再进行条件过滤,比如统计部门人数大于10人的部门。(HAVING和WHERE的区别,HAVING 是对分组后的结果进行条件的过滤,而WHERE是在分组前进行条件的过滤,如果可以,我们应尽可能用WHERE先过滤记录,这样结果集减少,提高分组效率。)

上一篇下一篇

猜你喜欢

热点阅读