SQL笔记二(GROUP BY)

刚刚修复了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

这样就好理解多了。

已有 3 条评论
  1. 夏目贵志

    现在你会的东西越来越多了赶紧py大腿一波 从此走上人生巅峰,迎娶白富美

    1. 泽泽社长

      夏目贵志 这东西就是用的时候查一查,记录下以免自己忘了

      1. 夏目贵志

        泽泽社长 上次那个数据库支持emoji 命令 搞得 数据库 报废了。。。