SQL单表查询(2)
聚集函数
- 统计元组个数
COUNT(*) - 统计一列中值的个数
COUNT([DISTINCT|ALL]<列名>) - 计算一列值的总和(此列必须为数值型)
SUM([DISTINCT|ALL]<列名>) - 计算一列值的平均值(此列必须为整值型)
AVG([DISTINCT|ALL]<列名>) - 求一列中的最大最小值
MAX([DISTINCT|ALL]<列名>)
MIN([DISTINCT|ALL]<列名>)
--计算1号课程的学生平均成绩
SELECT AVG(Grade)
FROM SC
WHERE Cno='1';
聚集函数一般和GROUP BY进行配合,GROUP BY可以进行分组
--求各个课程号以及相应的选课人数
SELECT Cno, COUNT(Sno)
FROM SC
GROUP BY Cno;
WHERE子句不能用聚集函数作为条件表达式
查询平均成绩大等于90的学生学号和平均成绩
错误语句
SELECT Sno,AVG(Grade)
FROM SC
WHERE AVG(Grade)>=90
GROUP BY Sno;
正确语句
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVG(Grade)>=90;