USEGEAR

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

pg的计算百分数的问题

复制代码
SELECT 
   cast("dept_id" as varchar(32)) , 

   cast("dept_name" as varchar(30)) AS "病区", 
   "total_surgical_patients" AS "手术总数", 
   "total_preop_medication_patients" AS "用药总数", 
   "total_discharged_patients" AS "出院总数",
   

    CASE 
        WHEN "total_surgical_patients" = 0 THEN NULL 
        ELSE ROUND(("total_preop_medication_patients"/NULLIF("total_surgical_patients", 0))*100, 2)::varchar(20) 
    END AS "按所在科室用药率%",
    CASE 
        WHEN "total_discharged_patients" = 0 THEN NULL 
        ELSE ROUND(("total_preop_medication_patients"/NULLIF("total_surgical_patients", 0))*100, 2)::varchar(20) 
    END AS "按出院科室用药率%",

    cast("dept_parentcode" as varchar(40))
 

FROM "RemoteData"."fn_getantidruguse_surgery"('2021/3/1',  '2024/3/30', 'preoperative_medication', ' and 1=1 ')
order by "dept_id"
复制代码

出现摸不着头脑的问题,是分母异常自动屏蔽处理了,导致计算百分数是0。因此需要检查分母NULLIF()

posted on   USEGEAR  阅读(56)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示