postgresql:发现班上一门以上科目不及格的学生(分数< 50分)

6rqinv9w  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(252)

我有一张学校的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
eqoofvh9

eqoofvh91#

派生表(子查询)将返回每个student\u id,该id有多个<50类的标记。计算返回的行数。

select count(*)
from 
(
  select student_id
  from school
  where marks < 50 
  group by student_id
  having count(subject_id) > 1
) as dt

相关问题