用sql语句查询所有人截止某个时点的住院天数统计
时间: 2024-09-14 18:15:19 浏览: 44
你可以使用SQL的`GROUP BY`和`COUNT()`函数以及`DATEDIFF()`来查询所有人在某个特定时点的住院天数统计。假设有一个名为`hospital_stays`的表,其中包含`patient_id`, `admission_date`, 和 `discharge_date`字段,你可以编写如下的查询:
```sql
SELECT patient_id,
COUNT(*) AS total_days,
DATEDIFF(CURDATE(), MAX(discharge_date)) AS max_stay_days
FROM hospital_stays
WHERE discharge_date <= '目标日期' -- 替换为目标时点,如'2023-01-01'
GROUP BY patient_id;
```
这个查询做了以下几件事:
1. 筛选出在指定日期(如'2023-01-01')之前出院的所有记录。
2. 对每个病人的住院记录计数,`COUNT(*)`表示每条记录代表一天。
3. 计算每个病人住院的最大天数,`DATEDIFF(CURDATE(), MAX(discharge_date))`计算了从当前日期到最大出院日期的时间差。
阅读全文