计算高于阈值的行中的单元格数

时间:2017-06-01 16:28:09

标签: sql sql-server tsql

我有一张这样的表:

ls -l

我想计算一个学生每年90岁以上的成绩。上表所需的输出是:

Student_ID | Year | Math Grade | English Grade
----------------------------------------------
1          | 2009 | 90         | 92

2          | 2009 | 80         | 95

1          | 2010 | 75         | 85

2 个答案:

答案 0 :(得分:2)

您应该使用case声明执行此操作:

select ((math_grade > 90 then 1 else 0 end) + (english_grade > 90 then 1 else 0 end)
       ) as grades_above_90

使用除法的问题在于,如果阈值小于50,它就不起作用。

答案 1 :(得分:0)

为此找出一个非常简单的解决方案。我添加到SELECT语句的末尾:     SELECT math_grade / 90 + english_grade / 90 AS grade_above_90