我正在使用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