sql - limitar a quantidade de linhas no resultado

11/02/2020

0

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

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar