サンプルデータを含む「訪問」テーブルがあります。
患者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