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

标签 mysql sql select phpmyadmin xampp

我正在创建一个表格,该表格可以计算三列中的所有“异常”数据并将这些列相加作为总数。

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;

这将从这三列计算所有非“正常”。

有什么办法可以将这三列合计为“眼睛/耳朵/ 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

关于mysql - 如何对所有 count(case) 子列求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55392589/

相关文章:

mysql - 选择所有组合

php - 内连接查询不返回任何东西

php - PHP 中两个 mysql 表的 Json

android - SQlite MAX 查询有时返回空

mysql - INSERT INTO 使用来自其他表的数据导致错误 1064

mysql - 如何快速重构/重命名大型数据库中的表、字段和值?

java - 如何将 MySQL 数据库中的 id 解析为变量

c# - 比较列表是否在 SQL 表列中

c - select() 不等待

mysql - 多行的 SQL 条件