为什么这个select / group by query有效?

时间:2015-03-17 17:38:18

标签: postgresql

我希望这个查询不能在Postgres上运行,但它运行正常:

SELECT "users".* FROM "users" GROUP BY users.id

怎么运作?我正在选择我没有分组的字段。该表包含数十列。

我在OSX上使用Postgres.app,版本9.3.3.0(21)。

1 个答案:

答案 0 :(得分:2)

因为您按照所有其他功能依赖的列进行分组:

Quote from the manual

  

对于SELECT列表表达式来说,除了在聚合函数中或在分组列[...]上未分组列是功能相关的时,引用未分组的列是无效的。如果分组列(或其子集)是包含未分组列的表的主键,则存在功能依赖性。

强调我的

这符合SQL标准,并已在Postgres 9.1中添加