【发布时间】:2020-06-24 12:34:46
【问题描述】:
我目前正在使用 Bigquery 动态生成查询,使用“GROUP_CONCAT_UNQUOTED”函数将多个字符串连接为一个。
例子:
SELECT 'SELECT ID, AID, ' +
GROUP_CONCAT_UNQUOTED(
'MAX(IF(KEY = "' + KEY + '", VALUE, NULL)) as [' + KEY + ']'
)
+ ' FROM [project:dataset.tbl] GROUP BY 1,2 ORDER BY 1,2'
FROM (
SELECT KEY
FROM [project:dataset.tbl]
GROUP BY KEY
ORDER BY KEY
)
上面的查询产生另一个查询,如下所示:
SELECT
ID,
AID,
MAX(IF(KEY = "key1", VALUE, NULL)) as [key1],
MAX(IF(KEY = "key2", VALUE, NULL)) as [key2],
MAX(IF(KEY = "key3", VALUE, NULL)) as [key3]
FROM [project:dataset.tbl]
GROUP BY 1,2
ORDER BY 1,2
我想使用标准 SQL 而不是旧版 SQL 来做同样的事情。
Google 文档提到 STRING_AGG() 作为替代方案,但我没有得到所需的输出
【问题讨论】:
标签: google-bigquery