Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何对所有计数(案例)子列求和?_Mysql_Sql_Select_Phpmyadmin_Xampp - Fatal编程技术网

Mysql 如何对所有计数(案例)子列求和?

Mysql 如何对所有计数(案例)子列求和?,mysql,sql,select,phpmyadmin,xampp,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)

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

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;
这将统计这三列中的所有非“正常”


有什么方法可以将这三列相加为“眼睛/耳朵/鼻子”吗?

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

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

考虑在应用程序代码中处理数据显示的问题-尽管在本质上,我怀疑这个问题源于一个设计不良的表,您可以使用子查询。从您的查询中选择异常眼+异常耳+异常鼻作为“眼/耳/鼻”;我能问一下‘t’是什么意思吗?@JinAnonuevo在MySQL中,每个表表达式在这种情况下,子查询必须有一个名称。因为在本例中,我们并不真正关心子查询的名称,也就是说,我们不会在任何地方使用它,所以我只是使用了表的缩写。但你可以用任何你喜欢的描述性名称。