社区
PostgreSQL
帖子详情
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就不会错 这是为什么?
...全文
3703
6
打赏
收藏
pgsql中group by 函数 为什么必须要加上查询的所有字段?
问题:在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就不会错 这是为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
因为必须要按照前面的维度来做聚集
比如你按年龄,性别做维度,聚集人数
你不能只选年龄做聚集维度
Pg
SQL
聚合
函数
string_agg[源码]
本文介绍了Postgre
SQL
中
的聚合
函数
string_agg的用法,该
函数
用于将分组后的多个
字段
值拼接成一个字符串。通过创建示例表user_info_test,演示了如何根据name
字段
分组并拼接hobby
字段
,包括基本用法、去重(distinct)和排序(order by)功能。同时,文章还对比了My
SQL
中
的类似
函数
group
_concat,展示了其在My
SQL
中
的等效用法。string_agg和
group
_concat都能有效解决分组后多值拼接的需求,避免了在代码
中
处理这类问题的复杂性。
postgre
sql
多行记录合并与拆分
postgre
sql
数据库多行记录的列合并成一列和一行的一列转成多行的列
oracle
sql
去重复记录不用distinct如何实现
本文将详细介绍oracle
sql
去重复记录不用distinct如何实现,需要了解的朋友可以参考下
SQL
语法
查询
(W3school)
SQL
语法
查询
(W3school), 罗列了
SQL
常用的语句用法,以及各种参数解释。
PostGIS关于批量空间数据处理的经验.pptx
PostGIS关于批量空间数据处理的经验.pptx
PostgreSQL
974
社区成员
1,472
社区内容
发帖
与我相关
我的任务
PostgreSQL
PostgreSQL相关内容讨论
复制链接
扫一扫
分享
社区描述
PostgreSQL相关内容讨论
sql
数据库
数据库架构
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章