热门排行
简介
主要集函数
COUNT ([DISTINCT|ALL] *) 统计元组个数
COUNT ([DISTINCT|ALL] <列名>) 统计一列中值的个数
SUM ([DISTINCT|ALL] <列名>)计算一列值的总和
AVG([DISTINCT|ALL] <列名>)计算一列值的平均值
MAX([DISTINCT|ALL] <列名>)求一列值中的最大值
MIN([DISTINCT|ALL] <列名>)求一列值中的最小值
例1:查询学生总人数 SELECT COUNT(*) FROM Student;
例2:查询选修了课程的学生人数 SELECT COUNT(DISTINCT Sno) FROM SC;
例3:计算1号课程的学生平均成绩 SELECT AVG(Grade) FROM SC WHERE Cno=‘1’;
例4:查询学习1号课程的学生最高分数 SELECT MAX(Grade) FROM SC WHERE Cno=‘1’;
对查询结果分组
group by 列名 [having 条件表达式]
group by将表中的元组按指定列上值相等的原则分组,然后在每一分组上使用聚集函数,得到单一值
having则对分组进行选择,只将聚集函数作用到满足条件的分组上
例:查询各个课程号与相应的选课人数
SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;
查询选修了3门以上课程的学生的学号
SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) >3
比较连接查询
COUNT ([DISTINCT|ALL] *) 统计元组个数
COUNT ([DISTINCT|ALL] <列名>) 统计一列中值的个数
SUM ([DISTINCT|ALL] <列名>)计算一列值的总和
AVG([DISTINCT|ALL] <列名>)计算一列值的平均值
MAX([DISTINCT|ALL] <列名>)求一列值中的最大值
MIN([DISTINCT|ALL] <列名>)求一列值中的最小值
例1:查询学生总人数 SELECT COUNT(*) FROM Student;
例2:查询选修了课程的学生人数 SELECT COUNT(DISTINCT Sno) FROM SC;
例3:计算1号课程的学生平均成绩 SELECT AVG(Grade) FROM SC WHERE Cno=‘1’;
例4:查询学习1号课程的学生最高分数 SELECT MAX(Grade) FROM SC WHERE Cno=‘1’;
对查询结果分组
group by 列名 [having 条件表达式]
group by将表中的元组按指定列上值相等的原则分组,然后在每一分组上使用聚集函数,得到单一值
having则对分组进行选择,只将聚集函数作用到满足条件的分组上
例:查询各个课程号与相应的选课人数
SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;
查询选修了3门以上课程的学生的学号
SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) >3
比较连接查询