PostgreSQL STRING_AGG

本文深入探讨了使用SQL进行复杂聚合查询的方法,通过具体案例展示了如何从多个表中联接、汇总和分组数据,特别关注于字符串聚合函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELECT
	t1.code,
    t1.name,
    t1.organ_id,
    t1.status,
    t1.remark,
    t1.create_ts,
    t1.create_user_id,
    t1.update_ts,
    t1.update_user_id,
    t1.corp_id,
    t1.union_id,
	t2.name AS organ_name,
	
	STRING_AGG(t4.name, '、') AS dept_name,
	STRING_AGG(t3.dept_id, ',') AS dept_id,
	
	STRING_AGG(t7.name, '、') AS user_name,
	STRING_AGG(t5.user_id, ',') AS user_id,
	STRING_AGG(t8.org_id, ',') AS organ_ids
FROM t_mis_cost_center t1 
LEFT JOIN t_mis_org t2 ON t1.organ_id = t2.id AND t2.org_type = '1'

LEFT JOIN t_mis_cost_center_dept_rel t3 on t1.id = t3.center_id
LEFT JOIN t_mis_org t4 ON t3.dept_id = t4.id AND t2.org_type = '2'

LEFT JOIN t_mis_cost_center_user_rel t5 on t1.id = t5.center_id
LEFT JOIN t_mis_user t6 ON t5.user_id = t6.id
LEFT JOIN t_mis_staff t7 ON t6.staff_id = t7.id
LEFT JOIN t_mis_staff_org_rel t8 ON t7.id = t8.staff_id

WHERE t1.id = '133388e98a5e40038855cf61751b8847'
GROUP BY 
	t1.code,
    t1.name,
    t1.organ_id,
    t1.status,
    t1.remark,
    t1.create_ts,
    t1.create_user_id,
    t1.update_ts,
    t1.update_user_id,
    t1.corp_id,
    t1.union_id,
    t2.name;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

spencer_tseng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值