pgsql中group by 函数 为什么必须要加上查询的所有字段?

kang#kang 2018-09-05 05:56:26

问题:在pg中 使用group by后面 必须跟selecte 后面的除了聚集函数外的所有字段 这是为什么?

比如:SQL:select count(*), brand_id, brand_desc FROM product GROUP BY brand_id, brand_desc
如果group by 后只加上 brand_id 则报错 加上brand_desc就不会错 这是为什么?
...全文
3614 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hu0829 2018-11-18
  • 打赏
  • 举报
回复
oracle不是也一样
zjcxc 2018-09-10
  • 打赏
  • 举报
回复
mysql 支持,不过不在 GROUP BY 中的列是视为自动加聚合函数 ANYROW
ckc 2018-09-08
  • 打赏
  • 举报
回复
所有数据库都是这样的,因为不在group by 后面的字段可能并不相同,也就是说没有明确的值,所以不支持这种查询方法
kang#kang 2018-09-07
  • 打赏
  • 举报
回复
好吧 貌似明白了
chenghangstar 2018-09-06
  • 打赏
  • 举报
回复
引用 1 楼 chenghangstar 的回复:
因为必须要按照前面的维度来做聚集
比如你按年龄,性别做维度,聚集人数
你不能只选年龄做聚集维度
系统无法自动处理性别
chenghangstar 2018-09-06
  • 打赏
  • 举报
回复
因为必须要按照前面的维度来做聚集
比如你按年龄,性别做维度,聚集人数
你不能只选年龄做聚集维度

972

社区成员

发帖
与我相关
我的任务
社区描述
PostgreSQL相关内容讨论
sql数据库数据库架构 技术论坛(原bbs)
社区管理员
  • PostgreSQL社区
  • yang_z_1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧