繁体   English   中英

使用记录行作为列 BigQuery

[英]Use record rows as columns BigQuery

假设我有一个表,其中包含像这个这样的行,其中表的每一行都有数组形式的记录。

使用 Bigquery,有没有一种方法可以将其转换为一个表,该表将“a”、“b”、“c”作为其自己的列,并将 100、46、29 作为行中的值?

即转

Row | abc_keys | abc_intValues
------------------------------
1   | a        | 100
    | b        | 46
    | c        | 29
2   | a        | 101
    | b        | 47
    | c        | 30

进入

Row | a   | b  | c
-------------------
1   | 100 | 46 | 29
2   | 101 | 47 | 30

考虑以下方法

select * except(row_hash) from (
  select keys, intValues, to_json_string(t) row_hash
  from your_table t, unnest(abc)
)
pivot (any_value(intValues) for keys in ('a', 'b', 'c'))    

如果应用于您问题中的示例数据 - output 是

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM