PIVOT只能将一个值转换为一列。 另外,如果我们想要转换和(分组)相交的值范围,PIVOT也没有帮助。
所以我们计划使用MODEL子句来克服这个限制。
我们必须转向列:
分组中的季度/年/月的列表是固定的,并且可以在MODEL子句中进行硬编码(即,它总是要回顾2年)。
我有一个使用三个独立枢轴的上述工作原型,但效率非常低,因为每个枢轴都必须再次传递我们庞大的数据集。
我们预计MODEL可能只需要一次通过数据集。
问题:
答案 0 :(得分:1)
您可以使用多个数据透视列和多个结果列进行PIVOT
with atc as
(select owner, table_name, column_name, data_type, nullable
from all_tab_columns
where table_name = 'ALL_TAB_COLUMNS')
select *
from atc
pivot
(max(column_name) as max_col_name, min(column_name) as min_col_name
for (data_type, nullable) in
(
('NUMBER','N') as dt_number_n, ('VARCHAR2','N') as dt_vc_n,
('NUMBER','Y') as dt_number_y, ('VARCHAR2','Y') as dt_vc_y
)
)