在使用group each by对记录进行分组时,我希望使用group_concat()聚合函数来连接字符串。因为group each by需要一个可并行化的查询,所以我不能使用order by。我是否可以假设表中记录在每个组中的顺序都将保持不变?如果没有,有什么解决方案吗?
发布于 2013-06-10 23:40:47
您可以使用窗口函数来实现这一点。例如:
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它将包含特定单词的所有莎士比亚戏剧的名称连接在一起,并按照它们的编写日期进行排序。
https://stackoverflow.com/questions/17009561
复制相似问题