У меня есть следующие примеры данных в таблице Oracle (tab1
), и я пытаюсь преобразовать строки в столбцы. Я знаю, как использовать Oracle pivot в одном столбце. Но можно ли применить его к нескольким столбцам?
Пример данных:
Type weight height
A 50 10
A 60 12
B 40 8
C 30 15
Мой предполагаемый выход:
A-count B-count C-count A-weight B-weight C-weight A-height B-height C-height
2 1 1 110 40 30 22 8 15
Что я могу сделать:
with T AS
(select type, weight from tab1 )
select * from T
PIVOT (
count(type)
for type in (A, B, C, D,E,F)
)
Вышеприведенный запрос дает мне следующий результат
A B C
2 1 1
Я могу заменить count(*)
на sum(weight)
или sum(height)
на поворот высоты или веса. То, что я ищу, но я не могу сделать, является поворотным для всех трех (количество, вес и высота) в одном запросе.
Это может быть сделано с помощью шарнира?