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