[英]Turn columns into values in BigQuery
我有以下數據:
date_ country category_A category_B
2022-12-11 USA 100 200
2022-12-11 Canada 2000 400
這是由此查詢生成的:
select
date('2022-12-11') as date_, 'USA' as country, 100 as category_A, 200 as category_B,
union all select
date('2022-12-11') as date_, 'Canada' as country, 2000 as category_A, 400 as category_B
我想做的是只將數據的最后兩列轉換為值,並為值獲取一個列,如下表:
date_ country category value
2022-12-11 USA category_A 100
2022-12-11 USA category_B 200
2022-12-11 Canada category_A 2000
2022-12-11 Canada category_B 400
也許它並不完美,但您可以使用以下查詢:
with countries AS
(select
date('2022-12-11') as date_, 'USA' as country, 100 as category_A, 200 as category_B,
union all select
date('2022-12-11') as date_, 'Canada' as country, 2000 as category_A, 400 as category_B
)
select
date_,
country,
category
from countries,
unnest(array[struct('category_A' AS category_name, category_A AS category_value), struct('category_B' AS category_name, category_B AS category_value)]) as category;
結果是:
在unnest
中,您需要添加所有預期的類別列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.