Как получить транспонирование в sql (HANA)?
У меня есть запрос, который возвращает таблицу, которая похожа
SELECT (CASE WHEN type=1 THEN 'A'
WHEN type=2 THEN 'B'
END) as TYPE,COUNT(*) AS COUNT
from TYPE_TABLE GROUP BY TYPE
(Я использую case, чтобы иметь количество в каждом типе).
count type
_____ _____
123 A
124 B
120 C
Я хочу, чтобы стол был таким
A B C
___ ___ ___
123 124 120
Так что на самом деле мне нужно транспонировать количество столбцов. Как я могу получить это в HANA?
3 ответа
Решение
Чистое решение SQL (SQL Server)
select
[A]
, [B]
, [C]
from
(
select Type,[Count]
from ( SELECT (CASE WHEN type=1 THEN 'A'
WHEN type=2 THEN 'B'
.....
END) as TYPE,COUNT(*) AS COUNT
from TYPE_TABLE GROUP BY TYPE) Table1
) x
pivot
(
SUM(Count)
for Type in([A], [B], [C])
)p
Так как есть только 3
ты мог бы просто
SELECT SUM(CASE WHEN TYPE = 1 THEN 1 ELSE 0 END) AS A,
SUM(CASE WHEN TYPE = 2 THEN 1 ELSE 0 END) AS B,
SUM(CASE WHEN TYPE = 3 THEN 1 ELSE 0 END) AS C
FROM yourTable
Я знаю, что это поздний ответ, но вы, безусловно, можете создать 3 ограниченных показателя в представлении расчета для столбца «количество» и отфильтровать типы — A,B,C.
ТА-ДА, строки будут преобразованы в столбцы.