Как получить транспонирование в 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.

ТА-ДА, строки будут преобразованы в столбцы.

Другие вопросы по тегам