美文网首页
group by的使用场景

group by的使用场景

作者: 指下光年 | 来源:发表于2021-10-22 20:18 被阅读0次

    group by的使用场景

    • select 后使用聚合函数,例COUNT(),NUM(),SUM(*)
      GROUP BY 语句根据一个或多个字段对结果集进行分组(也就是把值相同放到一个组中,显示组中一条记录),实现对每个组而不是对整个结果集统计。SELECT子句中的列名必须为分组列、聚合函数或常量。
      语法形式为:
    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先过滤记录,这样结果集减少,提高分组效率。)

    相关文章

      网友评论

          本文标题:group by的使用场景

          本文链接:https://www.haomeiwen.com/subject/qashaltx.html