爱好者 > Typecho > 代码相关 > SQL笔记二(GROUP BY)

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
这样就好理解多了。