Sunday 17 February 2019

Write a SQL to list “no of employees” & “name of employees” reporting to each person



select empno,ename,no_of_rep,name_of_rep
from emp,
    (select mgr,listagg(ename,',') name_of_rep,
           count(*) no_of_rep
     from emp
     group by mgr) r
where emp.empno=r.mgr(+)
order by empno;



select empno,ename,
      (select listagg(ename,',')
      from emp where mgr = e.empno) name_of_rep,
      (select count(1)
      from emp where mgr = e.empno) no_of_rep
from emp e
order by empno;



select m.empno,m.ename,
       listagg(e.ename,',') name_of_rep,
       count(e.ename) count_of_rep
from emp m, emp e
where m.empno=e.mgr(+)
group by m.empno,m.ename
order by 1

About Me

I am Siva Jeevan.LK [LEARN | CODE | TRAIN | SHARE] Passionate to answer oracle SQL & PLSQL related questions. In my day to day job, I work with technologies including Oracle, Java, Python, MongoDB, talend and UNIX. I am passionate about "DATA", “SQL” , coding & training. In my spare time, I teach database technologies , ETL etc. I am very glad that you are reading my Profile, and I value your time as well as mine. Looking forward to see you in my videos at Siva Academy Passionate to answer oracle SQL & PLSQL related questions. You can contact me via My youtube channel (Siva Academy) or drop an email at siva.k.academy@gmail.com Happy to Learn & Help :-)

Total Pageviews