mysql - 编写语句以使用 group by 而不是 group by 表达式创建报告错误
问题描述
问题:使用带有 GROUP BY 和“HAVING”条件的聚合函数,列出所有课程及其每门课程的出席人数超过 5 人的总出席人数
陈述:
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 列表中的 [non-aggregated] 列。
推荐阅读
- java - 有没有一种方法可以将月份添加到获取以下预期的日期
- google-bigquery - BiqQuery 中的大数据按分位数分组
- c# - 如果excel文件在IIS express文件夹中,则只需将其导入数据库
- rxjs - 是否可以在其他史诗运行时“跳过”执行?
- r - 如何使用 where 子句将文件 sas7bdat 导入 R
- python - 要获取表格的列,还要通过单击该链接来获取包含链接的第一列以获取数据
- aws-lambda - 如何从同一个 AWS lambda 函数访问 Cognito 函数和 Elasticache?
- angular - SyntaxError:“JSON.parse:JSON 数据第 1 行第 1 列的意外字符”
- javascript - 在 audio.play() 歌曲未触发
- excel - 从特定工作表复制数据并保存在现有工作表“草稿”中