sql - limitar a quantidade de linhas no resultado

SQL

Oracle

SELECT

Oracle PL SQL

11/02/2020

olá, meu problema é o seguinte:

tenho a tabela EMPLOYEES, com as colunas SALARY e DEPARTMENT_ID.
tenho também a tabela DEPARTMENTS, que possui as colunas DEPARTMENT_ID e DEPARTMENT_NAME.
sendo DEPARTMENT_ID a chave que liga as duas tabelas.

preciso listar os 3 maiores salários para cada departamento.

a query abaixo está correta e trás exatamente o que eu quero:

select distinct department_name, salary
from (select d.department_name, e.salary, RANK() OVER (PARTITION BY d.department_name ORDER BY salary DESC) RANK
      from employees e join departments d
      on e.department_id = d.department_id
      order by d.department_name, e.salary desc)
where rank <= 3
order by department_name, salary;


porém gostaria de saber se há alguma solução mais fácil, por exemplo com a palavra-chave ROWNUM.

uso oracle.
Matheus Silva

Matheus Silva

Curtidas 0
POSTAR