我有一張表格,包含糖尿病,高血壓,心力衰竭等6種不同條件下的近百萬份索賠記錄。每個成員都有一些索賠。他可能會聲稱患有糖尿病或高血壓或其他疾病。我的目標是將每個成員行的條件(索賠數量)分組。使用左外連接的每個ID的SQL組行數
現有的表
+--------------+---------------+------+------------+
| Conditions | ConditionCode | ID | Member_Key |
+--------------+---------------+------+------------+
| DM | 3001 | 1212 | A1528 |
| HTN | 5001 | 1213 | A1528 |
| COPD | 6001 | 1214 | A1528 |
| DM | 3001 | 1215 | A1528 |
| CAD | 8001 | 1823 | B4354 |
| HTN | 5001 | 3458 | B4354 |
+--------------+---------------+------+------------+
所需的結果
+------------+------+-----+----+----+-----+-----+
| Member_Key | COPD | CAD | DM | HF | CHF | HTN |
+------------+------+-----+----+----+-----+-----+
| A1528 | 1 | | 2 | | | 1 |
| B4354 | | 1 | | | | 1 |
+------------+------+-----+----+----+-----+-----+
查詢
select distinct tr.Member_Key,C.COPD,D.CAD,DM.DM,HF.HF,CHF.CHF,HTN.HTN
FROM myTable tr
--COPD
left outer join (select Member_Key,'X' as COPD
FROM myTable
where Condition=6001) C
on C.Member_Key=tr.Member_Key
--CAD
left outer join (....
現在我只是使用'X'。但我試圖根據條件獲得索賠數量來代替X.我不認爲使用左外連接在搜索100萬行並執行截然不同時效率更高。你有什麼其他的辦法解決這個
熟悉旋轉功能。 –
嗯...... PIVOT似乎並不需要像這樣的情況。 @KrzysztofKaszkowiak – Hogan
你說得對。如果條件數量沒有變化,那麼PIVOT是不必要的。 –