

学习`GROUP BY`的时候,不需要把它看成一种完全独立的新知识。可以先回想自己在Excel透视表里面是怎样完成统计的:希望按照什么维度查看数据,就把相对应的字段写进`GROUP BY`;希望计算什么指标,就选择合适的聚合函数;需要提前排除哪些明细,就使用`WHERE`;需要保留哪些汇总结果,就使用`HAVING`。

接下来这篇内容会从Excel数据透视表的使用思路出发,逐步讲清SQL当中的单字段分组、多字段分组以及常用聚合函数。
一、先把透视表思维翻译成SQL。
一句话:
透视表是在界面里拖字段;
SQL是把同样的分析逻辑写成语句。
你熟悉的Excel操作,换成数据库其实就是这几步:

答:它做的不是“魔法统计”,而是把明细按维度装进不同组,再汇总输出。
核心问题永远只有两个:按谁看?看什么数?

一句话:先写分组字段,再写聚合指标,其他条件按位置补上
写分组统计,本质是在回答:从哪张表来、先筛什么、按什么分、最后看什么结果。

一句话总结:
字段一多,看的就不是单一维度,而是组合粒度。
GROUP BY region和GROUP BY region,category,统计结果不是一回事。

一句话:GROUPBY决定按谁看;聚合函数决定看什么结果。
分好组之后,真正负责“算数”的是这些函数:


真正上手时,不是背语法,而是把业务问题拆成5个动作
一句话:业务需求一旦拆成“按谁看、看什么数、先筛什么、再筛什么、怎么排序”SQL就会清楚很多。
