如何对所有 count(case) 子列求和?

How to sum all count(case) subcolumns?

我正在创建一个 table,它可以计算来自三列的所有 'abnormal' 数据并将这些列相加作为总数。

SELECT

  COUNT(CASE WHEN p_eyes <> 'Normal' THEN 1 END) AS 'abnormalEyes',
  COUNT(CASE WHEN p_ears <> 'Normal' THEN 1 END) AS 'abnormalEars',
  COUNT(CASE WHEN p_nose <> 'Normal' THEN 1 END) AS 'abnormalNose'

FROM student_physical_record_exam_grade_eleven;

这将计算这三列中所有非 'Normal'。

有什么方法可以将这三列合计为 'Eyes/Ears/Nose'?

如果您只想对这些结果求和,可以将它们相加。最简单的方法是使用子查询:

SELECT *, abnormalEyes + abnormalEars + abnormalNose AS totalAbnormal
FROM   (SELECT COUNT(CASE WHEN p_eyes <> 'Normal' THEN 1 END) AS abnormalEyes,
               COUNT(CASE WHEN p_ears <> 'Normal' THEN 1 END) AS abnormalEars,
               COUNT(CASE WHEN p_nose <> 'Normal' THEN 1 END) AS abnormalNose
FROM   student_physical_record_exam_grade_eleven) t