GROUP BY的语法:
select [filed1,filed2,...]聚合函数(filed),[grouping(filed),][grouping_id(filed1,filed2)]
from tabel_name
where condition
[group by {rollup|cube} (filed1,filed2) ]
[having condition]
[order by filed]
1.where和having的区别:
where和having都是用来筛选数据,但是where是针对原数据进行筛选,而having子句是针对汇总后的结果进行筛选
2.扩展用法:
a.使用rollup操作符:‘rollup’的意思是‘卷起,汇总’,它可以使在括号中的字段,按右到左的顺序分别froup后显示,类似我们用多个group by语句,然后union all起来;
b.使用cube操作符:cube意思是立方,使用该操作符可以对操作符内的字段,进行遍历组合汇总,将操作符内的字段进行不同的组合来进行分组;
c.使用grouping(filed)函数:
用来判断某行数据是不是按照rollup或cube进行汇总,如果判断的该参数为null则返回1,否则返回0