在 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