[英]SQL: converting columns to rows
我目前有一個看起來像這樣的表:
date ---- x ---- y ---- z
2020----- 2 ---- 4 ---- 8
2018 ---- 3 ---- 3 ---- 2
2019 ---- 1 ---- 6 ---- 0
我喜歡旋轉這個表,這意味着列變成這樣的行:
date ---- metric ---- value
2020 ---- x ---- 2
2018 ---- x ---- 3
2019 ---- x ---- 1
2020 ---- y ---- 4
2018 ---- y ---- 3
2019 ---- y ---- 6
2020 ---- z ---- 8
2018 ---- z ---- 2
2019 ---- z ---- 0
如果是在 python 中,我可以使用 pivote() 或 t() 函數來完成。 但是,我不確定如何使用 SQL 執行此操作。 你能幫我解決這個問題嗎?
謝謝!
一個規范的方法是union all
:
select date, 'x' as metric, x as value from t union all
select date, 'y' as metric, y as value from t union all
select date, 'z' as metric, z as value from t;
一些數據庫支持橫向連接,這簡化了這一點——而且速度更快一些。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.