[英]Unpivot, Split Column, Pivot Bigquery/Postgresql
我有這樣的表:
然后我想把表改成這樣:
我通常在 Power BI 查詢編輯器中執行此操作,但文件太大,所以我在另一個平台(如 Bigquery/Postgresql)中嘗試
謝謝
您可以交叉連接到 aa 值子句:
select t.fruits,
u.*
from the_table t
cross join lateral (
values ('Store A', t.qty_store_a, t.value_store_a),
('Store B', t.qty_store_b, t.value_store_b),
('Store C', t.qty_store_c, t.value_store_c),
('Store BC', t.qty_store_bc, t.value_store_bc),
('Store DC', t.qty_store_dc, t.value_store_dc)
) as u(store, qty, value)
考慮以下解決方案(對於 BigQuery)
select Fruits, regexp_extract(Store, r'Qty_(.*?)_Value') Store, Qty, Value
from your_table
unpivot (
(Qty, Value) for
Store in (
(Qty_Store_A, Value_Store_A),
(Qty_Store_B_C, Value_Store_B_C),
(Qty_Store_D_C, Value_Store_D_C)
)
)
如果應用於您問題中的示例數據 - output 是
而且,如果由於某種原因 RegEx 方式對您不起作用,您可以在上面的稍微修改的版本中顯式定義商店名稱
select Fruits, Store, Qty, Value
from your_table
unpivot (
(Qty, Value) for
Store in (
(Qty_Store_A, Value_Store_A) as 'Store_A',
(Qty_Store_B_C, Value_Store_B_C) as 'Store_B_C',
(Qty_Store_D_C, Value_Store_D_C) as 'Store_D_C'
)
)
顯然,與相同的 output
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.