【背景】 某三甲医院每月复盘各科室(Department)的复诊与用药情况。请基于就诊记录与处方,统计每个科室在 2024 年 2 月的就诊概览,并衡量复诊率与抗生素用药占比,用于门诊管理优化。 【原始表】 patients(患者)表 patient_id INT 主键 patient_name VARCHAR visits(就诊)表 visit_id INT 主键 patient_id INT 外键 → patients.patient_id dept VARCHAR 科室(如 CardioENT) 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,则当前这次计为“复诊”。 占比类均四舍五入保留两位小数。 【示例输入】 patients +------------+--------------+ patient_id patient_name +------------+--------------+ 1 Alice 2 Bob 3 Carol +------------+--------------+ visits +----------+------------+--------+------------+----------------+ visit_id patient_id dept visit_date diagnosis_code +----------+------------+--------+------------+----------------+ 101 1 Cardio 2024-01-20 A 102 1 Cardio 2024-02-10 A 103 2 ENT 2024-02-05 B 104 2 ENT 2024-02-25 B 105 3 Cardio 2024-02-15 A 106 3 ENT 2023-12-30 B +----------+------------+--------+------------+----------------+ prescriptions +-----------------+----------+-----------+-----------+--------------+ prescription_id visit_id drug_code drug_name is_antibiotic +-----------------+----------+-----------+-----------+--------------+ 1 102 X DrugX 0 2 102 Y DrugY 1 3 103 Z DrugZ 1 4 104 W DrugW 0 5 104 Q DrugQ 1 6 105 P DrugP 0 +-----------------+----------+-----------+-----------+--------------+ 【示例输出】 +--------+------------------+-------------------------+------------------------+---------------------------+ dept feb_2024_visits feb_2024_unique_patients feb_2024_revisit_rate feb_2024_antibiotic_rate +--------+------------------+-------------------------+------------------------+---------------------------+ Cardio 2 2 50.00 33.33 ENT 2 1 50.00 66.67 +--------+------------------+-------------------------+------------------------+---------------------------+
示例1

输入

DROP TABLE IF EXISTS prescriptions;
DROP TABLE IF EXISTS visits;
DROP TABLE IF EXISTS patients;

CREATE TABLE patients(
  patient_id   INT PRIMARY KEY,
  patient_name VARCHAR(100)
);

CREATE TABLE visits(
  visit_id     INT PRIMARY KEY,
  patient_id   INT,
  dept         VARCHAR(50),
  visit_date   DATE,
  diagnosis_code VARCHAR(50)
);

CREATE TABLE prescriptions(
  prescription_id INT PRIMARY KEY,
  visit_id        INT,
  drug_code       VARCHAR(50),
  drug_name       VARCHAR(100),
  is_antibiotic   TINYINT(1)
);

INSERT INTO patients VALUES
(1,'Alice'),(2,'Bob'),(3,'Carol');

INSERT INTO visits VALUES
(101,1,'Cardio','2024-01-20','A'),
(102,1,'Cardio','2024-02-10','A'),
(103,2,'ENT','2024-02-05','B'),
(104,2,'ENT','2024-02-25','B'),
(105,3,'Cardio','2024-02-15','A'),
(106,3,'ENT','2023-12-30','B');

INSERT INTO prescriptions VALUES
(1,102,'X','DrugX',0),
(2,102,'Y','DrugY',1),
(3,103,'Z','DrugZ',1),
(4,104,'W','DrugW',0),
(5,104,'Q','DrugQ',1),
(6,105,'P','DrugP',0);

输出

dept|feb_2024_visits|feb_2024_unique_patients|feb_2024_revisit_rate|feb_2024_antibiotic_rate
Cardio|2|2|50.00|33.33
ENT|2|1|50.00|66.67
加载中...