查询中的多个聚合始终具有相同的顺序吗?

Have multiple aggregations in a query always the same order?

我特别要求 PostgreSQL,但也感谢其他流行 SQL 实现的答案。

给定一个包含多个聚合的 sql 查询,尤其是 array_agg,聚合值的顺序是否确定?

示例:

SELECT ARRAY_AGG(columnA), ARRAY_AGG(columnB) FROM myTable
GROUP BY columnC

我能否依靠两个数组具有相同的顺序,这意味着两个数组中位置 i 处的值将属于同一源行?

我在文档中找不到任何关于此的信息,我不确定,因为我读过并行化可用于计算聚合,我担心这可能会导致不确定的顺序。

如果您不提供 order by

,则顺序永远不会确定

因此,如果您需要特定订单,请指定:

SELECT ARRAY_AGG(columnA order by some_sort_column), 
       ARRAY_AGG(columnB order by some_sort_column) 
FROM myTable
GROUP BY columnC