我正在使用Oracle SQL,並且需要一些查詢幫助。我不知道該怎麼做。硬聚合查詢
我有如下表(table_a
):
Mortgage_ID (int)
Doc_ID (int)
Status (varchar)
每個文檔可以爲同一抵押多次發送。
從上表我做了如下表(table_b
):
Rank (int)
Document_type (int)
Count (int)
此表包含前40名流行的文件從table_a
全球數(不考慮狀態)。例如:
Rank | Doc_ID | count
--------------------------
1 | 212121 | 90
2 | 555111 | 82
3 | 4567654 | 76
. | . | .
. | . | .
. | . | .
40 | 54321 | 22
現在我需要創建下表:對於從table_a
每宗按揭的,我需要已經派人與地位的前40名的文件中的每一個「OK」的文件計數。
例如:
Mortgage_id | Pop1 | Pop2 | Pop3 | ... | Pop40
-------------------------------------------------
123 | 50 | 21 | 30 | ... | 6
555 | 70 | 0 | 21 | ... | 40
654 | 100 | 96 | 58 | ... | 0
POP1 DOC(最流行的文件)已發出50次 「OK」 爲Mortgage_ID 123 POP2已發送21次,狀態爲 「OK」 的Mortgage_id狀態123等。
我希望描述足夠清楚。有誰知道如何做到這一點?
這就是所謂的支點。根據您的Oracle版本,您可以使用PIVOT函數,也可以使用帶CASE表達式的聚合函數將行轉換爲列。 – Taryn 2014-09-29 11:15:24
爲將來的問題閱讀[這](http://tkyte.blogspot.de/2005/06/how-to-ask-questions.html),請 – zaratustra 2014-09-29 11:32:45