分组函数到底怎么用,显示中不少的开人员在做简单的分组的时候肯能还能分清,但复杂点的分组就分不清了,其中的原因找过很多人聊过,最后总结了一下,主要的原因还是不清楚分组是干什么。
引用昨天的连接中的图
所谓的分组如果我用
A列对这个表进行分组,那意味着A列有多少个值就有多少组,以上边的表为例子,则最后只剩下两组 一组 是A1 ,一组是A2,既只剩下两行数据,但除了A列外其他的列都剩余多行数据,那这时就有一个问题一组中除了用于分组的列外其他的列的数据不一定是唯一的。
这时就需要对其他列进行一些操作,使其变为一行,这些操作有 随便选一行 ,选最大或最小的一行,或者是对几行进行计算 求和或者求平均 。所有的这一切操作都是为了将分组内的多行数据变成一行。
所以 我们在看到分组sql一般是这样的
select 分组列,分组列,分组函数(未分组列) from 表
where 限制条件
group by 分组列,分组列。
从这个里可以看出,就是用多个分组列,将这个表格按这几列作为key进行分组,剩下的列就通过分组函数让其由多行变成一行。
如果对连接不熟悉的可以看我的上一篇文章。