collect_set for Google bigquery

时间:2016-03-18 21:56:31

标签: google-bigquery

嗨,我无法在任何地方找到它。

如何在Google BigQuery中执行collect_set?

我的查询已经用大查询

编写了

选择 用户身份, 脚步, 从表

我需要将每个user_id的所有步骤放入像collect_set那样的数组中。

2 个答案:

答案 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