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;

posted @ 2020-10-21 22:17  一个经常掉线的人  阅读(134)  评论(0编辑  收藏  举报