как получить номер строки для каждой группы в отчете? - PullRequest
0 голосов
/ 10 апреля 2019

Я делаю отчет о наборе сотрудников для каждой группы, и мне нужно получить номер строки для каждого сотрудника в каждой группе отдела

select rownum,e.empno, e.ename, e.sal, e.comm, e.deptno, d.dname 
  from emp e
  left join dept d on emp.deptno = dept.deptno
 order by deptno;

1 Ответ

1 голос
/ 10 апреля 2019

Мы можем попробовать использовать ROW_NUMBER здесь:

SELECT
    ROW_NUMBER() OVER (PARTITION BY emp.deptno ORDER BY emp.ename) rn,
    emp.empno,
    emp.ENAME,
    emp.SAL,
    emp.COMM,
    emp.DEPTNO,
    dept.dname
FROM emp
LEFT JOIN dept
    ON emp.deptno = dept.deptno
ORDER BY
    emp.deptno;

Обратите внимание, что вы никогда не предоставляли логику для того, что должно решать порядок каждого сотрудника в отделе.В отсутствие этого я использовал имя сотрудника.Если вам нужен другой порядок, просто измените предложение ORDER BY в вызове на ROW_NUMBER.

...