【问题标题】:concatenate data in postgresql在 postgresql 中连接数据
【发布时间】:2015-12-14 14:05:35
【问题描述】:

我有一个这样的表格数据:

我想在 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,我只想显示一次。

请帮帮我!!

【问题讨论】:

    标签: sql postgresql concatenation


    【解决方案1】:

    使用distinct,你也不需要array_agg()

    select item, 
           string_agg(distinct component, ',') as component,
           string_agg(distinct seller, ',') as seller
    from tablename
    group by item;
    

    【讨论】:

      【解决方案2】:

      这应该可行,有时您需要告诉它如何订购不同的

      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
      

      【讨论】:

      • order by item 是无用的,因为 group by item 这意味着聚合的所有值对于列 item 将具有相同的值
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多