如何分组查询

Posted 浅情孤唐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何分组查询相关的知识,希望对你有一定的参考价值。

group by 语法如下:

group by 字段名 [having 条件表达式]   [with rollup]  ;

(1) 字段名: 指按照该字段的值进行分组,指定多个字段中间使用逗号(,)进行分隔;

(2)having 条件表达式: 可选参数,用来限制分组后的显示,满足条件表达式的结果会被显示出来。

(3)wirh rollup :可选参数。将会在所有记录的最后加上一条,该记录是上面所有记录的忠和。

(4)group by 查询字段取值的分组情况。

一般在使用聚合函数时sum(), count () , avg(),才会使用到group by 。

 

having 和 where 的不同点:

1 having 针对结果组,where 针对的是列数据。

2 having 可以与聚合函数一起使用,where 不能。

3 having 语句只过滤分组后的数据,where在分组前对数据进行过滤。

示例:

select nameid from article group by  nameid;  // 只能查出一条记录

select concat(nameid)from article group by  nameid;   //根据文章编号nameid,进行分组。concat(nameid)  显示所有的文章编号列

 

以上是关于如何分组查询的主要内容,如果未能解决你的问题,请参考以下文章

THINKPHP中怎么对数据进行分组查询?

如何使用扩展分组功能获取此查询

MySQL分组查询后如何获取每组的前N条数据,你会吗?

如何正确分组我的 LINQ 查询?

如何在 mdx 查询上应用分组依据

如何按 Graphql 查询结果分组