如何使用SQL比较不同行的列值

时间:2014-03-31 23:53:18

标签: sql sql-server

我有一张表,其中包含一系列教师,他们正在教授的课程以及通过了多少学生以及有多少学生失败。

Teacher-ID       Class          Pass/Fail       Count
-------------------------------------------------------
1                English        Pass            15
1                English        Fail            5
1                Math           Pass            20
1                Math           Fail            10
2                Science        Pass            15
2                Science        Fail            10
2                Spanish        Pass            20
2                Spanish        Fail            8

我想要做的是获得每个教师和班级组合中有多少学生失败的百分比。

Teacher-ID       Class          % Failed
-------------------------------------------------------
1                English        25%
1                Math           33%
2                Science        40%
2                Spanish        29%

我很难过如何使用SQL来做这件事。

1 个答案:

答案 0 :(得分:2)

以下是您可以使用的查询:

SELECT
  TeacherID,
  Class,
  SUM(CASE WHEN PassFail = 'Fail' THEN Count ELSE 0 END) * 100.0 /SUM(Count) as FailPersent
FROM tbl
GROUP BY TeacherID, Class