我有一张学校的table,一班和二班各有6个学生,每个学生有5门课。
table看起来像这样-
student_id Standard subject_id marks
1 1 1 30
2 1 1 45
3 1 1 45
4 1 1 55
5 1 1 80
6 1 1 20
1 1 2 40
2 1 2 75
3 1 2 25
4 1 2 40
标准是学生的班级。
我的问题是我需要计算出他们班上一门以上科目不及格的学生人数(分数<50分)
到目前为止我失败的尝试:
select count(*) from
(select student_id, marks < 50 as fail_value from school
group by 1,2
having count(subject_id) > 1
) as alias
where fail_value = 'true'
作为参考,上表的预期结果如下所示:
count_student_id
2
1条答案
按热度按时间eqoofvh91#
派生表(子查询)将返回每个student\u id,该id有多个<50类的标记。计算返回的行数。