3,494
社区成员




SELECT key, MAX(NAME) NAME
FROM (SELECT t.key,
wmsys.wm_concat(t.NAME) over(PARTITION BY t.key ORDER BY t.NAME) NAME
FROM t)
GROUP BY key;
paddy的外面再套一层
minitoy正解~~~
with tab as
(select 1 key, 'a' name from dual union all
select 1,'b' from dual union all
select 2,'a' from dual union all
select 2,'b' from dual union all select 2,'c' from dual)
SELECT key, MAX(NAME) NAME
FROM (SELECT t.key,
wmsys.wm_concat(t.NAME) over(PARTITION BY t.key ORDER BY t.NAME) NAME
FROM tab t)
GROUP BY key;
------------------------------------------------------------------
1 a,b
2 a,b,c
--wm_concat函数其实也是一个开窗函数,因此直接套用分析函数就可以了
select t.key,wmsys.wm_concat(t.name)over(partition by t.key order by t.name) from t order by t.key
select key,wmsys.wm_concat(name) from (
select t.key,t.name from t order by t.key,t.name
) group by key
select t.key,wmsys.wm_concat(t.name)
from (select * from t order by key) t
group by t.key