# oracle查询满足不同条件的数据,并且放到不同的列,再转换成百分数

先查询满足不同条件的数据,并且放在不同列,同时排除掉测试病人

select   t.科别,
count(case when t.住院期间是否下病危或病重='是'  and 病人标识!='测试病人'  then 1  end)  疑难重症人数,
count(case when t.出院主要诊断转归 ='好转'or t.出院主要诊断转归 ='治愈'   and 病人标识!='测试病人'  then 1  end) 治愈好转人数,
count(case when t.出院时间 is not null and 离院方式 is not null   and 病人标识!='测试病人'  then 1  end )  出院人数 
from   病历表 t 
group by t.科别

再完善上面代码,把查询的数据转成百分数,如果除数为0则显示0,否则显示对应列的人数除以出院人数,保留四位小数,加上百分号

select a.科别,
round(decode(a.疑难重症人数,0,0,a.疑难重症人数/a.出院人数)*100,4)|| '%'  疑难重症比例,
round(decode(a.治愈好转人数,0,0,a.治愈好转人数/a.出院人数)*100,4)|| '%'  治愈好转率
from (
select   t.科别,
count(case when t.住院期间是否下病危或病重='是'  and 病人标识!='测试病人'  then 1  end)  疑难重症人数,
count(case when t.出院主要诊断转归 ='好转'or t.出院主要诊断转归 ='治愈'   and 病人标识!='测试病人'  then 1  end) 治愈好转人数,
count(case when t.出院时间 is not null and 离院方式 is not null   and 病人标识!='测试病人'  then 1  end )  出院人数 
from   病历表 t 
group by t.科别
)a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值