2)组函数可用于 SELEC子句中的目标列 表中,或在 HAVING子句的分组表达式 中用作条件。 3)分组用 GROUP BY对一列或若干列的值 分组,同值的分为一组。 4)对分出的每一组用 HAVING进行筛选, 筛选条件要用到组函数
2) 组函数可用于SELECT子句中的目标列 表中,或在HAVING子句的分组表达式 中用作条件。 3) 分组用GROUP BY对一列或若干列的值 分组,同值的分为一组。 4) 对分出的每一组用HAVING进行筛选, 筛选条件要用到组函数
例1:求选修了课程的学生人数 SELECT COUNT (DISTINCT S#) FROM SC 例2:求选修各门课的人数及平均成绩 SELECT C#, COUNT(S#), AVG (ALL GR) FROM SC GRoUP BY C#
例1:求选修了课程的学生人数 SELECT COUNT(DISTINCT S#) FROM SC; 例2:求选修各门课的人数及平均成绩 SELECT C#, COUNT(S#), AVG(ALL GR) FROM SC GROUP BY C#;
例3:求选修课程在5门以上且都及格的学 生号及总平均分 SELECT S#, AVG (ALL GR) FROM SC GROUP BY S# HAVING COUNT(C#)>5 AND MIN(GR)≥60;
例3:求选修课程在5门以上且都及格的学 生号及总平均分 SELECT S#, AVG(ALL GR) FROM SC GROUP BY S# HAVING COUNT(C#)>5 AND MIN(GR)≥60;
4、排序 1)用 ORDER BY子句对查询结果按照一个 或多个列的值进行升/降排列输出 2)升序为ASC;降序为DESC 3)空值将作为最大值排序
4、排序 1) 用ORDER BY子句对查询结果按照一个 或多个列的值进行升/降排列输出 2) 升序为ASC;降序为DESC 3) 空值将作为最大值排序
例1:对选修C5课程的学生按成绩降序 排列,同分数者按学号升序排列 SeLECt S#. GR FROM SC WHERE C#=C5 ORDER BY GR DESC, S# ASC
例1:对选修’C5’课程的学生按成绩降序 排列,同分数者按学号升序排列 SELECT S#, GR FROM SC WHERE C#=’C5’ ORDER BY GR DESC,S# ASC;