刚刚修复了typecho的CateFilter插件某种情况下会重复输出文章的bug,就是用的GROUP BY语法。

我修的过程其实一点都不了解GROUP BY,因为百度搜索sql去重复的时候推荐了这个我就用了。然后想起来自己写过《SQL笔记一》的文章,而且文章过去挺久的了,所以我就想是时候再水一篇文章了。

然后就百度查GROUP BY到底是干嘛的,搜到了各种优秀例子,各种说明,我都没看懂!然而,突然看到了个非常浅显的例子我就懂了。

GROUP BY就是分组函数

比如 现有
性别 男 3 人 体重 50KG/60KG/70
性别 女 2 人 体重 40KG/30KG
这时 你用到GROUP BY进行分组

select sum(体重) ,性别 from 表明 group by 性别 ;

则能得到结果
男 180
女 70

等于说 是按照你所GROUP BY的东西进行分组 ,然后再对分组内的东西进行操作

就是这么个简单的例子,我们就可以理解这个函数的作用了,也能理解为什么他们够去除重复行。比如这个例子按某性别列的值分组,那么值相等的为一组,所以就排除掉了其他的

上面是GROUP BY接单列的例子,那么多列又是什么样呢?

姓名班级性别分数
张11班60
张21班70
张31班80
张41班80
张52班70
张62班60
张72班80
select 班级,性别,AVG(分数) as 平均分
from test
group 班级,性别

得出的结果是

班级性别平均分
1班70
1班75
2班75
2班60

这样就好理解多了。

版权属于:泽泽社长
本文链接:https://blog.zezeshe.com/archives/sql-notes-2.html
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!