总第168篇/张俊红
写过 Sql 的同学应该都知道 group by 是用来对数据进行分组的,一般与聚合函数一起使用,对分组后的数据进行聚合。虽然大家都在用,但是有些同学还是不太清楚 group by 的底层到底是如何实现分组并且最后进行聚合的。今天就讲讲 group by 的底层实现。
我们直接来看例子,下面有一张表 t,存储了不同日期对应的不同品类的销量,具体数据如下:
现在我们要统计2019年1月1到1月3期间没每个品类的总销量,这个需求我们就可以用 group by 来实现,实现代码如下:
select cat ,sum(sales)
from
t
where sale_date between "2019/1/1" and "2019/1/3"
group by cat
上面代码中的 group by 具体执行过程是什么样子的呢?我们看一下下面这这张图。
</