回答

收藏

如何在postgres多个值作为单个字符串收集?

技术问答 技术问答 328 人阅读 | 0 人回复 | 2023-09-13

我有表:) k" K) r3 y" R
Project tableid name-------1  A2  BAssignment tableid name project_id-------------------1  A1   12  A2   13  A3   2我希望编写一个查询,以返回每个项目的分配名称,例如:
/ Q, V# P+ V6 E# rproject_id  assignments-----------------------1            A1,A22222                                                               A3有什么办法可以实现?3 O4 B# |# t; @8 u
                                                                7 T6 _0 d4 w& s) n9 u9 @
    解决方案:                                                               
) ]6 N' W9 q* F/ {! U9 e                                                                可联接表并用于array_agg用逗号分隔的合并值
- z0 k( q# N, oSELECT a.id,array_agg(b.name) assignmentsFROM    Project a        INNER JOIN assignment b          ON a.id = b.project_IDGROUP BY a.idSQLFiddle演示或使用 STRING_AGG
/ G/ A. p* E: }5 W& xSELECT a.id,STRING_AGG(b.name,',' ORDER BY b.name) assignmentsFROM    Project a        INNER JOIN assignment b          ON a.id = b.project_IDGROUP BY a.idSQLFiddle演示
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则