如何分组查询

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)  显示所有的文章编号列

猜你喜欢

转载自www.cnblogs.com/TangGe520/p/8966656.html
今日推荐