SQL> Select count(*) nbr
2 , deptno
3 From emp
4 Group by deptno;
NBR DEPTNO
---------- ----------
3 10
5 20
6 30
SQL> select deptno
2 , max(decode(my_seq,1,rtrim(ename)))||
3 max(decode(my_seq,2,nvl2(ename,', '|| rtrim(ename),null)))||
4 max(decode(my_seq,3,nvl2(ename,', '|| rtrim(ename),null)))||
5 max(decode(my_seq,4,nvl2(ename,', '|| rtrim(ename),null)))||
6 max(decode(my_seq,5,nvl2(ename,', '|| rtrim(ename),null)))||
7 max(decode(my_seq,6,nvl2(ename,', '|| rtrim(ename),null))) emp_list
8 from ( select deptno
9 , ename
10 , row_number() over (partition by deptno order by ename) my_seq
11 from emp
12 )
13 group by deptno
14 order by 1
15 /
DEPTNO EMP_LIST
---------- ----------------------------------------------------------------------
10 CLARK, KING, MILLER
20 ADAMS, FORD, JONES, SCOTT, SMITH
30 ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD