在 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_STRING
的 movie_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 的一部分