Oracle sql中的distinct listagg

qv7cva1a  于 2023-08-03  发布在  Oracle
关注(0)|答案(2)|浏览(113)

请参阅随附的图片。


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

a0x5cqrl

a0x5cqrl1#

试试这个方法:

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

字符串
在Fiddle上看到:http://sqlfiddle.com/#!4/ee5f2/1

wydwbb8l

wydwbb8l2#

我尝试在LISTAGG函数中添加DISTINCT

SELECT COL_1, LISTAGG(DISTINCT(COL2), ', ') 
                WITHIN GROUP (ORDER BY COL2) AS COL_2
       SUM(COL_3)
FROM TABLE 1
GROUP BY COL_1

字符串

相关问题