问题: 列出所有课程及其每门课程中出勤人数超过 5 人的出勤总数的报告,方法是使用具有 GROUP BY 和"具有"条件的聚合函数
陈述:
SELECT SUM(NO_OF_ATTENDANCES), COURSE_ID, EXERCISE_TYPE, COURSE_LOC
FROM I_COURSE
GROUP BY COURSE_LOC
HAVING SUM(NO_OF_ATTENDANCES) > 5;
请帮助我,告诉我出了什么问题以及为什么会出现错误。
表名I_COURSE
属性包括:COURSE_ID、EXERCISE_TYPE、COURSE_LOC NO_OF_ATTENDANCES
您只需按COURSE_ID
分组为:
SELECT SUM(NO_OF_ATTENDANCES), COURSE_ID
FROM I_COURSE
GROUP BY COURSE_ID
HAVING SUM(NO_OF_ATTENDANCES) > 5;
首先COURSE_ID列足以获得所需的结果,并且不可能在 SELECT 列表中包含不在 GROUP BY 列表中的 [非聚合] 列。