我想根据条件是真是假来拆分列,并计算每个医生每个类别中的患者数量
这是我的代码:
SELECT p.MRP_CP_ID, COUNT(p.PTNT_ID) FROM PATIENT p
JOIN PATIENT_SCHEDULE ps ON ps.PTNT_ID = p.PTNT_ID
WHERE ps.MLTPL_PHRM_FLG = 0
GROUP BY MRP_CP_ID;
但我想在另一列中显示 MLTPL_PHRM_FLG 为 1 的患者数量。有没有简单的方法可以做到这一点?
最佳答案
这可以通过条件聚合来完成。
SELECT p.MRP_CP_ID,
COUNT(*) Total,
COUNT(CASE WHEN ps.MLTPL_PHRM_FLG = 0 then 1 END) as PHRM_FLG_0_Counts,
COUNT(CASE WHEN ps.MLTPL_PHRM_FLG = 1 then 1 END) as PHRM_FLG_1_Counts
FROM PATIENT p
JOIN PATIENT_SCHEDULE ps ON ps.PTNT_ID = p.PTNT_ID
GROUP BY MRP_CP_ID;
关于mysql - 有条件地拆分列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38314488/