我正在查詢哪里
| 病人編號 | 訪問號 | 放電代碼 | 出院情況 |
|---|---|---|---|
| 1個 | 2個 | 6個 | 活下來 |
| 1個 | 3個 | 6個 | 活下來 |
| 1個 | 4個 | 6個 | 活下來 |
| 1個 | 5個 | 7 | 死了 |
有一位患者,來院就診4次(就診次數分別為2、3、4、5)。如果患者在就診途中死亡,則應該有第五列PatientFinalStatusas Died。
如果患者在旅途中幸存下來,那么狀態應該是幸存下來。
所以在上面顯示的情況下,第五列應該是PatientFinalStatus并且值應該Died在所有 4 行中。
它應該按分組patientno,然后為每個訪問次數檢查狀態。無論它在哪里找到died,它都應該將整個列更新為Died,否則Survived。
誰能建議一種方法來做到這一點?
謝謝
uj5u.com熱心網友回復:
您可以嘗試使用以下條件計數視窗函式:
SELECT *,
CASE WHEN COUNT(CASE WHEN DischargeStatus='Died' THEN 1 END) OVER
(PARTITION BY PatientNo) > 0
THEN 'Died'
ELSE 'Survived'
END AS PatientFinalStatus
FROM table_name
ORDER BY PatientNo, VisitNo
如果“DischargeStatus”(死亡或幸存)只有兩種可能性,您可以簡單地使用MIN視窗函式,如下所示:
SELECT *,
MIN(DischargeStatus) OVER (PARTITION BY PatientNo) PatientFinalStatus
FROM table_name
ORDER BY PatientNo, VisitNo
看一個演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/537429.html
標籤:数据库
