簡體   English   中英

MySQL分組計數為零

[英]MySQL Group By Count with Zero

我有以下查詢:

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”的患者數。 我該如何修改它以在輸出中使用相應的Patient_id將計數也設為0。

任何幫助表示贊賞。

我得到從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

嘗試

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

編輯:我忘記了WHERE子句

從apdr左連接中選擇不同的a.patient_id,if(b.x_ray_result為null,0,b.x_ray_result)作為x_ray_result(SELECT Patient_id,COUNT(Patient_id)AS x_ray_result從apdr WHERE type_of_test IN('x_ray_opinion_1','_2_ray_resin )並在a.patient_id = b.patient_id上解釋類似'kochs'GROUP BY Patient_id)b;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM