2

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

4

1 回答 1

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

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

于 2013-06-10T15:40:46.777 回答