如何快速转置 table?

How to transpose table in presto?

我有一个问题,结果是

A  |  B | C | D | E
2. |  3 | 10| 25| 60

如何转换为

Reason | Percentage
A.     | 2
B.     | 3
C.     | 10
D.     | 25
E.     | 60

(忽略锅)

谢谢

您可以尝试使用UNNEST功能。

SELECT v.*
FROM T
CROSS JOIN UNNEST(ARRAY[
 ROW('A', A), 
 ROW('B', B), 
 ROW('C', C), 
 ROW('D', D),
 ROW('E', E)
]) AS v(Reason, Percentage);

另一种方法是使用 UNION ALL

SELECT 'A' Reason , A Percentage FROM T
UNION ALL
SELECT 'B' Reason , B Percentage FROM T
UNION ALL
SELECT 'C' Reason , C Percentage FROM T
//....