查询中的多个聚合始终具有相同的顺序吗?
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
我特别要求 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