SQL Server分组查询和连接查询
一,使用GROUP BY进行分组查询
以上这种类型的查询,在SQL Server中叫作分组查询,分组查询采用GROUP BY子句来实现。
以我的SubjectId进行分组,显示每个SubjectId中SudentResult(科目成绩)的平均分。
SELECT SubjectId,AVG(SudentResult) as 所有课程平均分
FROM Result
GROUP BY SubjectId;
注意:如果要进行分组查询就必须和 AVG() 之类的聚合函数函数一起使用否则会报错。
我们再来看个例子
查询男、女学生进行总数的统计,用到聚合函数COUNT()。
首先按照性别列进行分组:GROUP BY Sex。
其次对每个组进行总数的统计,用到聚合函数COUNT()。
T-SQL语句如下:
SELECT COUNT(*) AS 人数,Sex FROM Student1
GROUP BY Sex;
二,多列分组查询
例如要统计每个学期的男、女学生的人数,则理论上先把每个学期分开,再针对每个学期,把男、女学生人数各自统计,也就是需要按照两个列进行分组:所属年级和性别。
T-SQL语句如下:
SELECT COUNT(