SQL笔记二(GROUP BY)
作者:佚名 来源:爱好者 时间:2019-04-07
刚刚修复了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接单列的例子,那么多列又是什么样呢?
姓名 班级 性别 分数
张1 1班 男 60
张2 1班 女 70
张3 1班 男 80
张4 1班 女 80
张5 2班 男 70
张6 2班 女 60
张7 2班 男 80
select 班级,性别,AVG(分数) as 平均分
from test
group 班级,性别
得出的结果是
班级 性别 平均分
1班 男 70
1班 女 75
2班 男 75
2班 女 60
这样就好理解多了。