Oracle sql中的distinct listagg

时间:2014-07-31 02:42:47

标签: sql oracle

请参阅附件中的图片。

enter image description here

我有如下所示的数据,通过使用查询,我可以得到如下结果。但是,我希望实际结果在Col_2中是不同的。这意味着X1只出现一次,然后是X2和X3。我不希望在列中重复多次使用相同的值。

有可能实现吗?

1 个答案:

答案 0 :(得分:5)

尝试这种方式:

SELECT A.COL_1, 
       LISTAGG(A.COL_2, ',') 
          WITHIN GROUP(ORDER BY A.COL_2) AS COL_2, 
       SUM(A.SS) AS COL_3
  FROM (SELECT COL_1, COL_2, SUM(COL_3) SS
          FROM TEST
         GROUP BY COL_1, COL_2 ) A
 GROUP BY COL_1

在这里查看小提琴:http://sqlfiddle.com/#!4/ee5f2/1