当前位置: 首页 > news >正文

每日SQL练习 -- 24年阿里(医院门诊复诊率与抗生素用药占比统计)

这个题目算是我学SQL以来,遇到的比较难的题目了,很考察逻辑思维能力,lag()函数很久没用过有点忘记函数用法了,正好可以复习一下窗口函数

【背景】
某三甲医院每月复盘各科室(Department)的复诊与用药情况。请基于就诊记录与处方,统计每个科室在 2024 年 2 月的就诊概览,并衡量复诊率与抗生素用药占比,用于门诊管理优化。

【原始表】

  • patients(患者)表
    • patient_id INT 主键
    • patient_name VARCHAR
  • visits(就诊)表
    • visit_id INT 主键
    • patient_id INT 外键 → patients.patient_id
    • dept VARCHAR 科室(如 Cardio/ENT)
    • visit_date DATE 就诊日期
    • diagnosis_code VARCHAR 诊断编码(本题不强制使用)
  • prescriptions(处方)表
    • prescription_id INT 主键
    • visit_id INT 外键 → visits.visit_id
    • drug_code VARCHAR
    • drug_name VARCHAR
    • is_antibiotic TINYINT(1) 是否抗生素(1 是,0 否)

【要求】
输出每个科室在 2024 年 2 月的指标,并按 dept 升序排序:

  • dept:科室
  • feb_2024_visits:2 月就诊人次
  • feb_2024_unique_patients:2 月就诊去重人数
  • feb_2024_revisit_rate:2 月复诊率 = 当月就诊人次中“距同患者同科室上一次就诊≤30天”的占比(%,保留两位小数)= 复诊人次 / 就诊人次
  • feb_2024_antibiotic_rate:2 月抗生素用药占比 = 当月处方中抗生素条目数 / 全部处方条目数(%,保留两位小数;分母为 0 则 0.00)

说明:

  • 复诊判断使用同患者同科室的上一次就诊日期(可发生在 2 月之前),若 DATEDIFF(curr, prev) ≤ 30,则当前这次计为“复诊”。
  • 占比类均四舍五入保留两位小数。

【题解】

selecttable1.dept,table1.feb_2024_visits,table1.feb_2024_unique_patients,table2.feb_2024_revisit_rate,table1.feb_2024_antibiotic_rate
from(selectt1.dept,count(distinct t1.visit_id) feb_2024_visits,count(distinct t1.patient_id) feb_2024_unique_patients,if(count(t2.prescription_id) = 0,'0.00',round(sum(t2.is_antibiotic) * 100 / count(t2.prescription_id),2)) feb_2024_antibiotic_ratefromvisits t1left join prescriptions t2on t1.visit_id = t2.visit_idwhereyear(t1.visit_date) = 2024and month(t1.visit_date) = 2group byt1.dept) table1left join (selectdept,round(sum(casewhen datediff(curr, prev) <= 30and prev is not null then 1else 0end) * 100 / count(visit_id),2) feb_2024_revisit_ratefrom(selectdept,visit_date curr,visit_id,patient_id,lag(visit_date, 1, 0) over (partition bypatient_id,deptorder byvisit_date) as prevfromvisits) uwhereyear(curr) = 2024and month(curr) = 2group bydept) table2 
on table1.dept = table2.dept

http://www.dtcms.com/a/520761.html

相关文章:

  • Vue项目中资源引入方式详解
  • 单页网站设计欣赏沪深300指数
  • 跨境一件代发平台温州seo关键词优化
  • mvc5网站开发网站长尾关键词排名软件
  • 阿里云渠道商:如何建立阿里云的权限模型?
  • 网站开发 只要凡科精选app
  • 玉溪市网站建设推广移动通信网站建设
  • 《算法通关指南之C++编程篇(5)----- 条件判断与循环(下)》
  • DarkZero
  • python 网站开发怎么部署龙岩有什么招聘本地网站
  • 上海兼职做网站淘宝友情链接怎么设置
  • 【Linux系统编程】程序替换:execve(execl、execlp、execle、execv、execvp、execvpe)
  • 西安市城乡房地产建设管理局网站wordpress国外主题修改
  • 巨鹿网站建设网络公司云南住房和建设厅网站
  • 前端八股文 | HTTP - 实时通信方式/前后端通信方式
  • 谈一谈ViewDragHelper的工作原理?
  • Flutter框架机制详解
  • 火山引擎推出Data Agent评测体系,并发布《2025数据智能体实践指南》
  • SpringBoot-Web开发之异常处理
  • wap网站和app的区别php网站后台建设
  • 舞阳网站建设如何引流被动加好友
  • js wordpress 菜单管理如何给网站做seo优化
  • Nginx server_name 配置详解
  • 做宣传网站网页制作素材去哪找
  • 百度地图网站开发wordpress会员权限
  • 微硕WSF2040 N沟MOSFET:汽车电动尾门“防夹升降核”
  • 网站建设投标书报价表建设电子商务网站的好处
  • 网站建设与开发教学大纲全网商机app招标
  • Less-4 GET-Error based-Double Quotes-String
  • 互斥锁、读写锁、ref()函数使用