使用GROUP_CONCAT和GROUP EACH BY

时间:2013-06-09 12:22:00

标签: google-bigquery

我想在使用group分组记录时使用group_concat()聚合函数连接字符串。因为每个组都需要可并行化的查询,所以我不能使用order by。我是否可以假设每组中表中的记录顺序将保持不变?如果没有,有什么解决方案吗?

1 个答案:

答案 0 :(得分:1)

您可以使用窗口功能执行此操作。例如:

SELECT word, LAST(corpora) as corpora, LENGTH(LAST(corpora)) as corplen 
FROM (
SELECT word, 
GROUP_CONCAT(corpus) OVER (PARTITION BY word ORDER BY corpus_date) as corpora
FROM [publicdata:samples.shakespeare]
)
GROUP BY word
ORDER BY corplen desc

这会将包含特定单词的所有莎士比亚戏剧的名称连接在一起,并按照它们被写入的日期对它们进行排序。