Boa tarde!
SELECT
ID_DEPARTAMENTO,
TO_CHAR(SUM(SALARIO), 'L999G999G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS TOTAL_SALÁRIOS
FROM
COLABORADORES
GROUP BY ID_DEPARTAMENTO;
Saída:
Boa tarde!
SELECT
ID_DEPARTAMENTO,
TO_CHAR(SUM(SALARIO), 'L999G999G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS TOTAL_SALÁRIOS
FROM
COLABORADORES
GROUP BY ID_DEPARTAMENTO;
Saída:
Olá, Estudante. Como vai?
Excelente resolução do exercício! A sua consulta SQL está perfeita e a lógica de agrupamento por departamento utilizando a função de agregação SUM foi aplicada de maneira totalmente correta.
Gostaria de destacar um ponto altíssimo da sua solução que demonstra um nível de capricho avançado: o uso da função TO_CHAR combinada com o parâmetro NLS_NUMERIC_CHARACTERS.
No dia a dia de um analista ou desenvolvedor de banco de dados, extrair apenas o número cru (ex: 150000.50) pode dificultar a leitura dos relatórios por parte das equipes de negócio. Ao aplicar essa máscara de formatação ('L999G999G990D00'), você garantiu que a saída do banco já viesse formatada no padrão de moeda local (R$), com os pontos e vírgulas nos lugares certos para o padrão brasileiro. Isso agrega muito valor ao resultado final!
O seu código cumpre perfeitamente o objetivo da atividade. Como uma sugestão de boa prática para deixar relatórios de custos ainda mais fáceis de analisar, você pode adicionar a cláusula ORDER BY no final da consulta.
Em relatórios financeiros de distribuição de custos, costuma ser muito útil visualizar quais departamentos geram mais gastos ou menos gastos de forma ordenada. Veja como o código ficaria:
SELECT
ID_DEPARTAMENTO,
TO_CHAR(SUM(SALARIO), 'L999G999G990D00', 'NLS_NUMERIC_CHARACTERS = '',.''') AS TOTAL_SALÁRIOS
FROM
COLABORADORES
GROUP BY
ID_DEPARTAMENTO
ORDER BY
SUM(SALARIO) DESC;
ORDER BY SUM(SALARIO) DESC: Adicionando essa linha ao final, o Oracle SQL vai ordenar o resultado colocando o departamento com a maior folha salarial no topo e o menor na base (ordem decrescente).Note que na cláusula ORDER BY usamos a função agregada SUM(SALARIO) pura em vez do apelido TOTAL_SALÁRIOS, pois dependendo da versão do banco de dados, o interpretador realiza a ordenação antes de aplicar a máscara de formatação do texto.
Parabéns pelo excelente domínio das funções de agregação e formatação no SQL!
Espero que possa ter lhe ajudado!