0

サンプルデータを含む「訪問」テーブルがあります。

患者ID | date_admitted | 退院日 |

971 |2011-03-25 | 2011-03-25|

971 |2011-08-08 |2011-08-08 |

971 |2011-08-25 |2011-08-25 |

971 |2011-09-03 |2011-09-03 |

971 |2011-10-03 |2011-10-09 |

2 つの条件に基づいて、患者の再入院の数を取得しようとしています

1) 0 日から 30 日以内。

2) 31 日から 90 日以内。

望ましい結果:

患者ID | remission_count_30| remission_count_90|

971 | 2 | 1 |

Readmission_count_30 : "2" は、2011 年 8 月 8 日の入院日から始まり、2011 年 9 月 8 日以内に終わる 2 つの入院日がデータに存在するためです。

Readmission_count_90 : "1" は、2011 年 8 月 8 日から始まるデータに 1 つの入院日が存在し、2011 年 8 月 8 日 + 間隔 '31 日' および 2011-08-08 の日付範囲内に 1 つの入院日が存在するためです。 + 間隔「90 日」

readmission_count_30 を取得しようとしましたが、ロジックに欠陥があります。

    select admit.patient_id,count(*)
    from visits admit 
    left outer join (select r1.patient_id, r1.date_admitted, r1.date_discharged,
    r2.id as readmit_type 
    from visits r1) readmit 
    on admit.patient_id = readmit.patient_id and 
    admit.date_admitted < readmit.date_admitted and readmit.date_admitted between admit.date_admitted AND           
    admit.date_admitted + INTERVAL '30 days' 
    group by admit.patient_id 
4

1 に答える 1