我有这样的表数据:
我想在postgresql中连接下面的数据:
我使用了如下查询,但是有一个小问题:
select
Item,
array_to_string(array_agg(Component) ,', ') AS Component,
array_to_string(array_agg(Seller) ,', ') AS Seller
from tablename
group by Item
它给我以下输出:
对于项目A2,它显示C89两次,我只想显示一次。
请帮帮我!!
答案 0 :(得分:5)
使用distinct
,您也不需要array_agg()
:
select item,
string_agg(distinct component, ',') as component,
string_agg(distinct seller, ',') as seller
from tablename
group by item;
答案 1 :(得分:1)
这应该有效,有时您需要告诉它如何订购不同的
select
Item,
array_to_string(array_agg(DISTINCT Component ORDER BY Item DESC ) ,', ') AS Component,
array_to_string(array_agg((DISTINCT Seller ORDER BY Item DESC) ,', ') AS Seller
from tablename
group by Item