2
respostas

Resolução - identificar o maior salário por departamento

Boa noite!

SELECT
    NOMEDEPARTAMENTO,
(
    SELECT
        TO_CHAR(MAX(SALARIO), 'L999G999G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''')
    FROM
        COLABORADORES
    WHERE
        COLABORADORES.ID_DEPARTAMENTO = DEPARTAMENTO.ID_DEPARTAMENTO
) AS MAIOR_SALARIO
FROM
    DEPARTAMENTO
ORDER BY MAIOR_SALARIO DESC;

Saída:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Olá, Estudante! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou a subquery para calcular valores com SQL, utilizou muito bem a função MAX() para identificar o maior salário e ainda compreendeu a importância da formatação TO_CHAR para exibir resultados de forma legível.

Uma dica interessante para o futuro é usar JOIN em vez de subquery quando quiser trazer informações relacionadas entre tabelas. Exemplo:

SELECT d.nomedeparatamento,
       TO_CHAR(MAX(c.salario), 'L999G999G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS maior_salario
FROM departamento d
JOIN colaboradores c ON c.id_departamento = d.id_departamento
GROUP BY d.nomedeparatamento
ORDER BY maior_salario DESC;

Isso pode simplificar a consulta e melhorar a performance em alguns cenários.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: Você prefere trabalhar com subqueries pela clareza na lógica ou acha mais interessante utilizar JOIN para deixar as consultas mais otimizadas e diretas?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Bom dia, Daniel!

Se tivesse que escolher, em ambiente de produção, entre uma ou outra alternativa, optaria pelo melhor desempenho, que normalmente também não prejudica a clareza e a legibilidade.
Mas continuo achando importante ter conhecimento de todos os recursos que podem ser aplicados.