加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Oracle的LISTAGG函数与一个独特的过滤器?

发布时间:2020-12-12 14:09:32 所属栏目:百科 来源:网络整理
导读:参见英文答案 LISTAGG in oracle to return distinct values13个答案我有一个这样的表: group_id name -------- ----1 David1 John1 Alan1 David2 Julie2 Charles 我想要以下结果: group_id names-------- -----1 'Alan,David,John'2 'Charles,Julie' 我可
参见英文答案 > LISTAGG in oracle to return distinct values13个答案我有一个这样的表:
group_id  name  
--------  ----
1         David
1         John
1         Alan
1         David
2         Julie
2         Charles

我想要以下结果:

group_id  names
--------  -----
1         'Alan,David,John'
2         'Charles,Julie'

我可以使用下面的查询:

select group_id,listagg(name,',') within group (order by name) as names
from demotable
group by group_id

得到这个(非常类似的结果):

group_id  names
--------  -----
1         'Alan,Julie'

任何想法如何我可以通过LISTAGG调用中的唯一性过滤名称?

我今天没有11g的实例可用,但你不能使用:
SELECT group_id,LISTAGG(name,') WITHIN GROUP (ORDER BY name) AS names
  FROM (
       SELECT UNIQUE
              group_id,name
         FROM demotable
       )
 GROUP BY group_id

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读