SQLServer对查询结果分组,GROUPBY⼦句
当select⼦句中包含聚合函数时,可以使⽤GROUP BY⼦句对查询结果进⾏统计,计算每组记录的汇总值
如:按系号计算每个系的平均成绩
select depID,AVG(StuScore)as'均分'
from student
GROUP BY DepID //先分组再执⾏聚合函数
注意:select⼦句中每⼀个⾮聚合表达式年内的所有列都应包含在GROUP BY列表中,否则会报错
select DepID, StuClass,AVG(StuScre)
from Student
group by DepID,StuClass
这样写不会错
select DepID, StuClass
from Student
group by DepID,StuClass
groupby分组HAVING⼦句:指定组或聚合的搜索条件,通常与GROUP BY⼦句⼀起使⽤
select DepID,AVG(StuScore)
from Student
//这⾥还可以写where
GROUP BY DepID
HAVING AVG(StuScre)>90
//以院系分组,统计平均分超过90的院系及对应的平均分信息
having与where⼦句的区别:
1,where⼦句筛选符合条件的⾏,⽽having⼦句筛选符合条件的组
2,where⼦句搜索条件在进⾏分组操作之前应⽤,⽽having相反
3,having语法与where语法类似,但在having⼦句中可以包含聚合函数,⽽where⼦句不能包含聚合函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。