postgresql里为什么order by 中的字段要在group by中
时间: 2023-11-12 11:24:07 浏览: 253
Sequelize中用group by进行分组聚合查询
5星 · 资源好评率100%
在 PostgreSQL 中,如果你使用了 `GROUP BY` 子句,那么 `SELECT` 语句中 `ORDER BY` 子句中的字段必须出现在 `GROUP BY` 子句中,这是由 SQL 标准规定的。这是因为 `GROUP BY` 子句将结果集中的行按照指定的列分组,并且对于每个分组只返回一个聚合结果,例如对每个分组进行计数、求和等操作。如果你使用了 `ORDER BY` 子句,那么查询结果将按照指定的列排序,这就可能导致同一个分组中的行排列顺序不一致,从而无法得到正确的聚合结果。因此,为了确保聚合结果的正确性,`ORDER BY` 子句中的列必须出现在 `GROUP BY` 子句中。
阅读全文