我想在使用group分组记录时使用group_concat()聚合函数连接字符串。因为每个组都需要可并行化的查询,所以我不能使用order by。我是否可以假设每组中表中的记录顺序将保持不变?如果没有,有什么解决方案吗?
答案 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
这会将包含特定单词的所有莎士比亚戏剧的名称连接在一起,并按照它们被写入的日期对它们进行排序。