sql语⾔之分组(groupby)
sql语⾔的分组是sql语⾔中的重点与难点,在实际应⽤中分组常常与聚合函数⼀起是⽤,⽤于统计分组的相关信息。下⾯我们通过实例讲解分组的概念。
我们存在⼀个学⽣成绩表,如下:
以上表我们对学⽣分了班,字段ClassNum储存该学⽣所在的班级号。
案例⼀:得到⼀个结果集显⽰每个班的学⽣⼈数
代码:
select ClassNum,Count(*) from StudentScoreInfo group by ClassNum
再以上代码中,我们以ClassNum为根据对数据进⾏了分组,其中的Selcect ClassNum,Count(*)查询到的是各个分组的记录条数。如果将以上代码分成以下三部分:
1,Select ClassNum,Count(*)
groupby分组2,from StudentScoreInfo
3,group by ClassNum
那么代码在执⾏的时候的顺序是,先执⾏第“2”部分,到表,再执⾏第“3”部分以ClassNum字段为根据进⾏分组,然后执⾏
第“1”部分到ClassNum的分组,并通过Count(*)聚合函数统计各个分组的记录数⽬。
执⾏代码得到的结果集如下:
结果显⽰,1班6⼈,2班5⼈,3班2⼈。
注意:
1,使⽤分组⼀定要了解如果在以某字段为根据进⾏了分组之后select那个字段得到的不是这个字段的信息,⽽是这个字段的分组信息。
2,使⽤Select查询的列在使⽤分组的语句中要不包含在group by字句中,要不包含在聚合函数中。不然查询会报错。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论