我有以下查询:
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/