You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写MySQL查询:判断患者30天内是否再入院(标记1/0)

MySQL查询:判断患者30天内是否再次入院

假设你的表名为admissions,以下两种方法均可实现需求:

方法一:使用EXISTS子查询

通过子查询检查同一患者是否存在满足时间条件的后续入院记录:

SELECT DISTINCT
    `Patient ID`,
    CASE
        WHEN EXISTS (
            SELECT 1
            FROM admissions b
            WHERE b.`Patient ID` = a.`Patient ID`
            AND b.`admission start` > a.`admission stop`
            AND DATEDIFF(b.`admission start`, a.`admission stop`) <= 30
        ) THEN 1
        ELSE 0
    END AS `30天内是否再入院`
FROM admissions a;

方法二:使用窗口函数LEAD

先获取每条入院记录的下一次入院时间,再分组判断是否存在30天内再入院的情况:

SELECT
    `Patient ID`,
    MAX(CASE
        WHEN next_admission_start IS NOT NULL AND DATEDIFF(next_admission_start, `admission stop`) <= 30 THEN 1
        ELSE 0
    END) AS `30天内是否再入院`
FROM (
    SELECT
        `Patient ID`,
        `admission start`,
        `admission stop`,
        LEAD(`admission start`) OVER (PARTITION BY `Patient ID` ORDER BY `admission start`) AS next_admission_start
    FROM admissions
) t
GROUP BY `Patient ID`;

输出样例

Patient ID30天内是否再入院
r7534323430
y8392434221

内容的提问来源于stack exchange,提问作者Manu Hand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:10:33