tecnologia | consultoria | banco de dados

Oracle - Números Sequenciais com OVER

Números sequenciais em ordem crescente de first_name:

SELECT
ROW_NUMBER() OVER (ORDER BY e.first_name) AS sequencia,
e.employee_id,
e.first_name
FROM hr.employees e
ORDER BY e.first_name;



Números sequenciais para cada agrupamento de department_id em ordem crescente de employee_id:

SELECT
e.department_id,
e.last_name,
e.employee_id,
ROW_NUMBER() OVER (PARTITION BY e.department_id ORDER BY e.employee_id) AS emp_id
FROM hr.employees e
ORDER BY e.department_id,
e.employee_id;



Mostrar registros que estão entre determinadas linhas, no exemplo abaixo, entre as linhas 51 e 100:

SELECT r, last_name
FROM (SELECT last_name, ROW_NUMBER() OVER (ORDER BY last_name) R
FROM hr.employees)
WHERE R BETWEEN 51 and 100;



OBS: a cláusula OVER funciona da mesma forma no Oracle e SQL Server
Data publicação: 00:54 06/01/2015
Perfil
Olá jovem Padawan, seja bem vindo! Este site foi criado com o intuito de compartilhar um pouco de conhecimento de Tecnologia da Informação e Business Intelligence.

Linkedin  Youtube

"Se você vem da cidade ou do campo, seu sucesso será determinado pela sua própria confiança e coragem". (Michelle Obama)


Leandro Sacramento, Todos os direitos reservados - 2012 - 2020