【问题标题】:SQL Concatenate all values in column B that have same value in column A for all values in column ASQL 将 B 列中与 A 列中具有相同值的所有值连接到 A 列中的所有值
【发布时间】:2020-08-27 04:42:10
【问题描述】:

我正在运行 PostgreSQL 12.4。我有一个相对较大的表,如下所示,其中第 1 列和第 2 列都是 character varying 类型:

|---------------------|------------------|
|       Column 1      |     Column 2     |
|---------------------|------------------|
|         foo         |         X        |
|---------------------|------------------|
|         foo         |         Y        |
|---------------------|------------------|
|         foo         |         Z        |
|---------------------|------------------|
|         bar         |         A        |
|---------------------|------------------|
|         bar         |         B        |
|---------------------|------------------|
|         bar         |         C        |
|---------------------|------------------|

我想创建如下内容:

|---------------------|------------------|
|       Column 1      |     Column 2     |
|---------------------|------------------|
|         foo         |      X, Y, Z     |
|---------------------|------------------|
|         bar         |      A, B, C     |
|---------------------|------------------|

有没有简单的方法可以做到这一点?

【问题讨论】:

    标签: sql postgresql group-by string-aggregation


    【解决方案1】:

    你可以使用string_agg:

    select column1, string_agg(column2, ', ')
    from table_name
    group by column1
    

    您可以找到更多信息here

    【讨论】:

    • @Xela 你可以通过投票和接受答案来感谢我;>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    相关资源
    最近更新 更多