数据透视查询列中的不同值

时间:2019-02-13 20:44:12

标签: oracle

我目前正在学习有关Oracle环境的《 SQL语言》一书。以下是PIVOT的示例之一:

SELECT * FROM
(SELECT Channel, State, SalesAmount FROM SalesSummary)
PIVOT (SUM(SalesAmount) FOR State IN ('NY', 'VT'));

但是,对于这个简单的示例,SalesSummary表中只有两个状态。我的问题是,有没有一种简单的方法可以从包含所有50个状态的假设表中列出状态-而不是手动输入?

我尝试了以下作为嵌套查询的尝试,但无济于事:

SELECT * FROM
(SELECT Channel, State, SalesAmount FROM SalesSummary)
PIVOT (SUM(SalesAmount) FOR State IN (SELECT DISTINCT(STATE)
FROM SALESSUMMARY));

我想知道是否有一种有效的方法可以在一列中列出所有状态,而不是手动输入。

0 个答案:

没有答案