在 BigQuery SQL 中压缩表数组行

Posted

技术标签:

【中文标题】在 BigQuery SQL 中压缩表数组行【英文标题】:Condensing Table Array Rows in BigQuery SQL 【发布时间】:2018-11-06 22:28:41 【问题描述】:

我想使用 BigQuery 标准 SQL

我有一个看起来像这样的表:

如何折叠每一行?例如,第一行看起来像这样:

row   Canopus_id    facebook     id      wikipedia    freebase musicbrainz    
1      10043474     21258...    Q557     Patt_Smith     /m/05qw5  d1358...

本质上,我们以这样一种方式折叠行,它会尝试为一列找到一个填充的条目,如果有一个填充的条目(在第一个或第二个单元格中)将是值。否则,将有一个空值。

【问题讨论】:

每个显示的列实际上是一个单独的重复字段还是一个重复记录? - 很高兴看到表/数据的架构 @javacash 。 . .我很好奇这些列的类型是什么。数组不支持NULL 元素。 【参考方案1】:

这是一种方法:

select row,
       (select max(facebook) from unnest(facebook) facebook) as facebook,
       (select max(id) from unnest(id) id) as id,
       . . .
from t;

【讨论】:

以上是关于在 BigQuery SQL 中压缩表数组行的主要内容,如果未能解决你的问题,请参考以下文章

Big Query (SQL) 将多列转换为行/数组

使用应用程序脚本在 Big Query 中创建视图 |错误:对 bigquery.tables.insert 的 API 调用失败并出现错误:缺少必需的参数(第 21 行

根据唯一 ID 列表删除 Big Query 表中的批量行

将数组保存到Big Query

Big Query 或 SQL 重塑数据

BIG QUERY SQL:如何在具有相同唯一键但访问期间不同的访问中查找不同的重复集?