SQL 如何在已分组统计的数据中统计某一字段特定值的总数

统计数据时发现 门诊使用抗菌药人数 字段需在分组后的结果中进行统计

--门诊挂号人次,门诊抗菌药使用率


门诊挂号人次、门诊抗菌药使用率ID
挂号日期
大科编码
大科
亚科编码
亚科
挂号人次
门诊使用抗菌药人数
药品金额
费用总金额
医事服务费
创建人
创建时间
修改人
修改时间
是否有效

SQL如下:

select count(1) 挂号人次,
to_char(tr.reg_date,'yyyy-mm-dd') 挂号时间,
td.dept_code 大科编码,
td.dept_name 大科,
tr.reg_office 亚科编码,
tr.reg_office_name 亚科,
sum(nvl(sm.western_fee,0)+nvl(sm.cn_herbal_fee,0)) 药品金额,
sum(nvl(st.total_amount,0)) 费用总金额,
sum(nvl(fee.fee,0)) 医事服务费,
sum(case mi.medicine_grade 
  when 'PH0026_02'then 1
    when 'PH0026_03'then 1
      when 'PH0026_04'then 1
        else 0 end) 门诊使用抗菌药人数
from outpatient_db.t_register tr 
left join outpatient_db.t_reg_fee fee on fee.reg_id=tr.reg_id and fee.status='1'
left join his_db.t_dept td on td.dept_code=substr(tr.reg_office,0,3) and td.status='1'
left join outpatient_db.t_settle st on st.reg_id=tr.reg_id and st.status='1'
left join outpatient_db.t_settle_summary sm on sm.settle_id=st.settle_id and sm.status='1'
left join outpatient_db.t_settle_detail sd on sd.reg_id=tr.reg_id and sd.status='1'
left join outpatient_db.t_medical_fee mf on mf.settle_detail_id=sd.settle_detail_id and mf.status='1'
left join dict_maint.dict_medicine_info mi on mi.id=mf.item_id 
group by to_char(tr.reg_date,'yyyy-mm-dd'),td.dept_code,td.dept_name,tr.reg_office,tr.reg_office_name

可在求和时进行case when判断如果为需要统计值则计数1,否则计数0

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值