最近学习SQL Server遇到了分组的问题,发现SQL Server中的分组和MYSQL中的分组有不一样的地方,借此仔细的翻阅资料深入的学习了下。
就以案例来说明下:
学生成绩表(学好#,课程号,成绩)
我们开始按学号分组:
select sNo from sc group by sNo
结果为:
学生成绩以学号为小组的形式开始划分,相同的学号成绩归并成一组,以此我们可以看到,Group By可以将查询结果按某一列或多列的值进行划分
易错点分析:
在SQL Server中,出现在select后面的字段,如果选用分组的形式,要么出现在聚合函数中,要么出现分组函数中。例如:执行如下语句
select sNo,cNo from sc group by sNo
会出现报错:(MYSQL则不会出现此情况,因为MYSQL执行的不严谨)
因为,select之后的字段有cNo课程号,但却不是在聚合函数或Group By子句中,所以会出现报错情况。
正确用法: