考虑这个例子:
SELECT comment_date
, array_agg(user_id) users
, array_agg(comment) comments
FROM user_comments
GROUP BY comment_date
- 假设用户和评论的索引引用相同的记录(例如,用户[3]创建评论[3])是否安全?<
- 两个数组的顺序是否可能引用不同的记录,可能是由于性能增强?
我对 Postgres 的内部结构了解不够,无法信任 array_agg 排序。
最佳答案
除非您明确指定,否则您不能对聚合函数的应用顺序做出任何假设。如果您想确保对 array_agg
的两次调用具有相应的值,您应该为它们都添加 order by
子句。例如:
SELECT date
, array_agg(user_id ORDER BY user_id) users
, array_agg(comment ORDER BY user_id) comments
FROM user_comments
GROUP BY date
关于postgresql - 查询中的两个 array_aggs 是否共享同一个窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31434254/