在 Google Big Query 中将两个数组连接在一起

Posted

技术标签:

【中文标题】在 Google Big Query 中将两个数组连接在一起【英文标题】:concat two arrays together in Google Big Query 【发布时间】:2020-03-30 22:43:31 【问题描述】:

我正在尝试获取两个数组,并将两者连接在一起。如果数据来自记录,我在以前的数据迭代中取得了很好的成功,但是这两个不同的数组给我带来了问题。

我在这个结构中有 JSON: "actor": "Tim Curry", "title" : ["Rocky Horror Picture Show", "Mighty Max", "Spamalot"], "result":["Nominated for Award","Nominated for Award", "Won Whatsonstage.com Award"]

因此 BQ 表看起来像这样

我试图将两个数组连接在一起,将一个数组的索引位置与另一个数组的索引匹配,最终以这个结束

我相信我需要一个类似于 SELECT actor, ARRAY_TO_STRING(movie_and_award, ', ') movie_and_award FROM t 的语句,但我无法弄清楚我将如何生成传递给 ARRAY_TO_STRINGmovie_and_award 数组。

【问题讨论】:

【参考方案1】:

以下是 BigQuery 标准 SQL

#standardSQL
SELECT actor, 
  ARRAY_TO_STRING(ARRAY(
    SELECT x || ' : ' || y 
    FROM UNNEST(t.title) x WITH OFFSET
    JOIN UNNEST(t.result) y WITH OFFSET
    USING(OFFSET)
  ), ', ') movie_and_award
FROM `project.dataset.table` t

如果应用于您问题的样本数据 - 输出是

Row actor       movie_and_award  
1   Tim Curry   Rocky Horror Picture Show : Nominated for Award, Mighty Max : Nominated for Award, Spamalot : Won Whatsonstage.com Award    

【讨论】:

以上是关于在 Google Big Query 中将两个数组连接在一起的主要内容,如果未能解决你的问题,请参考以下文章

已经存在 (HTTP 409) 错误 Big Query/Google Analytics

在 Big Query 中将 URL 替换为该 URL 的一部分

Unnest 2 级别 - Big Query 数组

如何在 Google Big Query 中总结月份?

使用 Google Big Query 在 Google App 脚本上超过最大执行时间

将Big Query中的数据自动导入Google表格?