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:
porém gostaria de saber se há alguma solução mais fácil, por exemplo com a palavra-chave ROWNUM.
uso oracle.
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)