【发布时间】:2019-06-12 14:36:45
【问题描述】:
我有以下场景,用户属于多个组。这些组按层次结构组织:
我想汇总用户所属组的所有人员信息。例如。第 1 个人属于第 7 组。第 7 组与以下第 1、5、7、8 组有联系(完整分支)
我写了以下查询:
SELECT person.id, array_agg(info)
FROM person LEFT JOIN person_group
ON ARRAY[person.id] && path
LEFT JOIN person_information ON
ARRAY[person_information.id] && path
GROUP BY person.id;
这个查询的问题是我得到了重复的信息:
我不想在 array_agg(info) 字段上使用 UNIQUE。相反,我想编写我的联接,以便我只获得个人信息表的唯一行。
我该怎么做?谢谢
【问题讨论】:
-
这样我只能获得个人信息表的唯一行 - 您显示的行是唯一的吗?
-
@SebastianBrosch 正确!谢谢!
标签: sql postgresql grouping