mysql - 有条件地拆分列

标签 mysql sql

我想根据条件是真是假来拆分列,并计算每个医生每个类别中的患者数量

这是我的代码:

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 的患者数量。有没有简单的方法可以做到这一点?

current result from that displayed here

最佳答案

这可以通过条件聚合来完成。

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/

相关文章:

MySQL LEFT JOIN 数组,如何返回多行?

mysql - 有很多属性的表

MySQL选择多对多位置

sql - 插入时循环/迭代日期范围

MySQL GROUP BY 不是空行

MySQL 连接帖子、用户信息和评级的三个表

mysql - 删除左表上的重复项,同时保留右表上的重复项 SELECT JOIN

c# - 在 MYSQL 中存储表情符号 - 列值超出范围

mysql - 无法添加外键约束(mysql-error-1215

c# - 将具有两列的 SQL IN 子句转换为 LINQ