嗨,我无法在任何地方找到它。
如何在Google BigQuery中执行collect_set?
我的查询已经用大查询
编写了选择 用户身份, 脚步, 从表
我需要将每个user_id的所有步骤放入像collect_set那样的数组中。
答案 0 :(得分:3)
尝试使用NEST()功能:
SELECT user_id, NEST(steps) AS steps
FROM table
GROUP BY user_id
有关如何使NEST能够写入表格的一些技巧,请参见下文 BigQuery NEST() returns 'Error: An internal error occurred'
另一种选择是使用GROUP_CONCAT将字符串列表构建为字符串:
SELECT user_id, GROUP_CONCAT(steps) AS steps
FROM table
GROUP BY user_id
答案 1 :(得分:0)
BigQuery Standard SQL中group_concat
的等效项是string_agg
。因此,等效查询可能是
select user_id, string_agg(steps) as steps
from table
group by user_id
在此处参考文档-https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate_functions#string_agg