用逗号分组在SQL中

时间:2014-10-16 08:54:15

标签: sql oracle plsql

我正在使用Oracle SQL,我对group by命令有疑问。

我有下表:

Column_A (int)
Column_B (int)

表中数据的示例:

Column_A | Column_B
 11      |    2
 23      |    3
 32      |    4
 32      |    10
 11      |    23
 23      |    11
 44      |    1
 23      |    5

我希望按Column_A分组,而Column_b的值将以逗号结束。输出表:

Column_A | Column_B
 11      |  2, 23
 23      |  3, 11
 32      |  4, 10, 5
 44      |  1

任何建议如何做到这一点?

2 个答案:

答案 0 :(得分:2)

使用函数listagg

SELECT Column_A, listagg( Column_B, ',' ) WITHIN GROUP( order by Column_B)
  FROM table_name
 GROUP BY Column_A

答案 1 :(得分:2)

您可以使用LISTAGG:

SELECT column_A,
       LISTAGG(column_B, ', ') WITHIN GROUP (ORDER BY column_B) column_B
  FROM your_table
 GROUP
    BY column_A