找到每堂课平均> 5的学生

时间:2018-11-07 14:07:33

标签: mysql

我有一个包含3列的表格:

student_id, class, grade

每个学生可以参加6到10个班级,并且每个班级可以获得任意数量的成绩。

因此,例如,student_id = 1的学生可以参加6个班级,他/她可以在物理上获得2年级,在数学上获得6年级,在英语上获得4个年级,依此类推,而Student_id = 2上10堂课,他/她可以在物理上获得7年级,数学上达到2年级,英语上达到7年级,地理上达到3年级等等。

我只需要找到参加了他/她参加的每堂课平均5(平均)成绩的学生(好,student_id)。

1 个答案:

答案 0 :(得分:0)

我认为您可以将数据分组两次:

SELECT student_id
FROM (
    SELECT student_id, class, AVG(grade) AS avg_grade
    FROM yourtable
    GROUP BY student_id, class
) AS x
GROUP BY student_id
HAVING COUNT(class) = COUNT(CASE WHEN avg_grade >= 5 THEN 1 END)