postgres数据库同表查询报错column “sd.dep“must appear in the group by clause or be used in an aggre

此次举例为在部门表(depart)中查询该指定code为1.2.3.4各个大类部门下的全部细分部门

 

postgres数据库同表聚合分组查询表内多个参数报错column "sd.dep"must appear in the group by clause or be used in an aggre

解决方法有两种:

第一种子查询:

select a.parent_code,b.name,a.aname from

(select parent_code,string_agg(name,',')as aname from depart group by parent_code) a

left join depart b on a.parent_code=b.code where a.parent_code in('1','2','3','4') ;

 

第二种指定多列分组

select a.parent_code,b.name,string_agg(a.name,',') as aname from depart a left join depart b on a.parent_code=b.code where a.parent_code in('1','2','3','4') group by a.parent_code,b.name;

 

 注意:

每多一个需要输出的非聚合参数(如:a.parent_code,b.name)

如是第一种,尽量安排在左查询表里

如是第二种,直接在group by后面添加该参数。

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值