在 MySQL 中直接查询人口普查信息
Straightforward query in MySQL for census information
MySQL 中是否有一个查询可以给定如下格式的 table,给出一个范围内每个日期在每个医院接受治疗的患者人数的计数,例如作为日历年(即输出 2021 年 1 月 1 日每家医院入院时不同患者 ID 的计数,2021 年 1 月 2 日的计数等)?
table 没有特定的日期列。
PatientID
HospitalName
AdmissionDate
DischargeDate
002
Sacred Cross
2021-09-15
2021-09-22
003
Sacred Heart
2021-10-15
2021-12-04
004
Sacred Cross
2021-09-17
NULL
如果您有 table 所有日期都在您需要的范围内,就很容易了。
(example 日历 table)
SELECT HospitalName, Calendar_Date, Count(PatientID) AS TotalPatients
FROM Ref_Calendar cal
LEFT JOIN YourTable t
ON cal.calendar_date BETWEEN t.AdmissionDate AND COALESCE(t.DischargeDate, '2239-06-30')
WHERE Calendar_Date BETWEEN '2021-01-01' AND '2021-12-31'
GROUP BY HospitalName, Calendar_Date
MySQL 中是否有一个查询可以给定如下格式的 table,给出一个范围内每个日期在每个医院接受治疗的患者人数的计数,例如作为日历年(即输出 2021 年 1 月 1 日每家医院入院时不同患者 ID 的计数,2021 年 1 月 2 日的计数等)?
table 没有特定的日期列。
PatientID | HospitalName | AdmissionDate | DischargeDate |
---|---|---|---|
002 | Sacred Cross | 2021-09-15 | 2021-09-22 |
003 | Sacred Heart | 2021-10-15 | 2021-12-04 |
004 | Sacred Cross | 2021-09-17 | NULL |
如果您有 table 所有日期都在您需要的范围内,就很容易了。
(example 日历 table)
SELECT HospitalName, Calendar_Date, Count(PatientID) AS TotalPatients
FROM Ref_Calendar cal
LEFT JOIN YourTable t
ON cal.calendar_date BETWEEN t.AdmissionDate AND COALESCE(t.DischargeDate, '2239-06-30')
WHERE Calendar_Date BETWEEN '2021-01-01' AND '2021-12-31'
GROUP BY HospitalName, Calendar_Date