在SQL Server中使用的分组查询是ORDER BY子句,使用ORDER BY子句要同聚合函数配合使用才能完成分组查询,在SELECT查询的字段中如果字段没有使用聚合函数就必须出现在ORDER BY子句中(即SELECT后边的字段名要么出现在聚合函数中,要么在ORDER BY子句中使用)
在分组查询中还可以配合使用HAVING子句,定义查询条件,例如:
select stuID as 学生编号,CourseID as 测试编号,avg(Score) as 测试平均成绩
from score
group by stuID,CourseID --按学号和测试编号分组
having count(Score)>1 --条件是分组后成绩记录数大于的
下面对比一下Where、GROUP BY、HAVING的区别:
Where子句:从数据源去掉不符合搜索条件的数据
GROUP BY子句:分组,使用统计函数(聚合函数)为每组计算统计值
HAVING子句:在分好的组中去掉每组中不符合条件的数据行
264

被折叠的 条评论
为什么被折叠?



