按季度统计同机构首次就诊唯一患者记录数的实现问题
实现逻辑
核心逻辑是先对每个(patient_id, org)组合筛选出首次就诊的唯一记录,后续同一患者同医院的所有就诊都不计入统计,再按就诊季度分组计数即可。
代码实现(SQL为例)
以下是通用实现思路,不同数据库的季度格式化函数可以对应调整:
WITH first_visit AS ( -- 取每个患者在每家医院的最早就诊记录 SELECT patient_id, org, MIN(date) AS first_visit_date FROM 你的表名 GROUP BY patient_id, org ) -- 按季度统计首次就诊的数量 SELECT -- 日期转YYYYQN格式,按实际使用的数据库选择对应写法 -- MySQL:CONCAT(YEAR(first_visit_date), 'Q', QUARTER(first_visit_date)) AS quarter -- PostgreSQL:TO_CHAR(first_visit_date, 'YYYY"Q"Q') AS quarter -- SQL Server:CONCAT(YEAR(first_visit_date), 'Q', DATEPART(QUARTER, first_visit_date)) AS quarter COUNT(*) AS count FROM first_visit GROUP BY quarter ORDER BY quarter;
逻辑验证
对应你给出的示例数据:
- 筛选每个(患者ID,医院)的最早记录后,得到三条有效记录:
- ouiku35 + Tristar:最早日期2020-01-05(对应2020Q1)
- I5434 + Methodist Hospital:最早日期2020-06-05(对应2020Q2)
- ertw4 + New York Hospital:最早日期2020-08-03(对应2020Q3)
- 按季度分组计数后,正好和你需要的输出结果一致。
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

