縦持ちのTable

横持ちのTable

 

◆縦→横
SELECT uid,
       max(CASE WHEN key = 'c1' THEN value END) AS c1,
       max(CASE WHEN key = 'c2' THEN value END) AS c2,
       max(CASE WHEN key = 'c3' THEN value END) AS c3
FROM table_name
GROUP BY uid;

结果
uid  c1  c2  c3
---  --  --  --
101  11  12  13
102  21  22  23

◆横→縦
SELECT uid, 'c1' AS key, c1 AS value FROM table_name
UNION ALL
SELECT uid, 'c2' AS key, c2 AS value FROM table_name
UNION ALL
SELECT uid, 'c3' AS key, c3 AS value FROM table_name
;

结果
uid  key  value
---  ---  -----
101   c1     11
102   c1     21
101   c2     12
102   c2     22
101   c3     13
102   c3     23

其余DB
Presto:Interactive SQL query engine for Big Data 

  • reference link:https://tug.red/entry/2014/07/10/150250/

Hive: not interactive. too slow

Pandas

SparkSQL

◆ 以上来源于Qiita(キータ) 

2011年に当時大学生であった海野弘成らにより公開された。 2016年現在で日本最大のプログラマーコミュニティとされている

https://qiita.com/

企業向けのQiita::Teamもある。