上一篇写到case when then用法,这里写一下实际中的应用

1.表 B_PATIENT_INFO  患者基本信息表包括性别(M 男 F 女 ),允许为空  2161条记录

CASE WHEN THEN的应用

  表M_CENTER 院区信息表

CASE WHEN THEN的应用

2.根据图可知:

   2.1 院区表M_CENTER.id 对应 患者信息表 B_PATIENT_INFO.CenterID

3. 根据院区分组,计算每个院区患者总数

SELECT
	mc.Name,
	COUNT (*) 总人数
FROM
	B_PATIENT_INFO bpi
LEFT JOIN M_CENTER mc ON mc.Id = bpi.CenterID
GROUP BY
	mc.Name

CASE WHEN THEN的应用

4.根据院区分组,计算每个院区患者中男性,女性,没填性别人数及总人数

SELECT
	mc.Name as 院区,
  SUM(CASE bpi.Sex WHEN 'M' THEN 1 else 0 end) as 男,
  SUM(case bpi.Sex WHEN 'F' THEN 1 else 0 end) as 女,
	COUNT (*) 总人数
FROM
	B_PATIENT_INFO bpi
LEFT JOIN M_CENTER mc ON mc.Id = bpi.CenterID
GROUP BY
	mc.Name
order by 总人数

CASE WHEN THEN的应用

 

 

相关文章: