MySQL Group By 计数为零

标签 mysql

我有以下查询:

SELECT apdr.patient_id,
COUNT(apdr.patient_id)
AS x_ray_result 
FROM apdr
WHERE apdr.type_of_test IN ('x_ray_opinion_1', 'x_ray_opinion_2') 
AND apdr.interpretation LIKE 'kochs' 
GROUP BY apdr.patient_id

它返回解释为“kochs”的患者数量。我如何修改它以使计数也为 0,并在输出中使用相应的 patient_id。

感谢任何帮助。

我得到的计数从 1 开始,我需要查询也得到 0 作为计数。

最佳答案

您可以使用 case 语句返回条件计数,而不是将条件放在 where 子句中。见:

SELECT apdr.patient_id, 
    COUNT(CASE WHEN apdr.type_of_test IN ('x_ray_opinion_1', 'x_ray_opinion_2') 
                    AND apdr.interpretation LIKE 'kochs' 
               THEN adpr.patient_id 
          END CASE) AS x_ray_result 
FROM apdr
GROUP BY apdr.patient_id

关于MySQL Group By 计数为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921178/

相关文章:

mysql - 如何在 find() cakephp 中指定范围

mysql - 如何生成随机字符并使用 MySQL 插入?

mysql - 从终端运行数据库中的 sql 文件

mysql - 你能自动创建一个不强制外键约束的 mysqldump 文件吗?

mysql根据两个表之间的公共(public)列获取表

mysql - 更新数据库中一列中的多行

php - MySQL无法执行

php - 使用多维数组数据在MySQL中查找数据

PHP mySQL preg_replace 字符串并存储结果

mysql - 在ubuntu中安装xampp后,phpMyAdmin要求输入用户名和密码: