DB pivot unpivot

縦持ちの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もある。

 

转载于:https://www.cnblogs.com/richarddlut/p/9456043.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值