Considere o seguinte comando SQL: SELECT D.NM_DEPARTAMENTO,...

Próximas questões
Com base no mesmo assunto
Q630829 Banco de Dados

Considere o seguinte comando SQL:

SELECT D.NM_DEPARTAMENTO, SUM(P.SALARIO)

FROM TB_DEPARTAMENTO D INNER JOIN TB_PROFESSOR P

ON (D.COD_DEPARTAMENTO = P.COD_DEPARTAMENTO) 


É CORRETO afirmar: 

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C, que afirma que a sintaxe do comando está incorreta, pois deveria apresentar a cláusula GROUP BY.

Vamos entender o porquê: quando você usa funções de agregação como SUM(), você está combinando várias linhas de resultados em um único valor de soma. Para que o SQL saiba como agrupar esses valores para a soma, é necessário especificar os critérios de agrupamento com a cláusula GROUP BY. Sem essa cláusula, o SQL não tem uma diretiva de como agrupar as linhas, o que é necessário quando queremos realizar uma operação de agregação por grupo, como somar os salários por departamento.

O correto seria ter um comando como:

SELECT D.NM_DEPARTAMENTO, SUM(P.SALARIO)
FROM TB_DEPARTAMENTO D INNER JOIN TB_PROFESSOR P
ON (D.COD_DEPARTAMENTO = P.COD_DEPARTAMENTO)
GROUP BY D.NM_DEPARTAMENTO;

Este comando agora agrupa os resultados pelo nome dos departamentos e, então, calcula a soma dos salários para cada um desses grupos.

As outras alternativas estão incorretas por essas razões:

  • A: A consulta não necessariamente retorna o mesmo número de linhas da tabela TB_PROFESSOR, pois a função de agregação SUM pode combinar várias linhas em uma única linha para cada departamento.
  • B: Em SQL, a função SUM ignora valores NULL. Isso significa que, se houver um valor NULL para SALARIO, ele não será considerado na soma, mas o resultado da consulta não será NULL por causa disso.
  • D: A junção INNER JOIN pode ser utilizada com funções de agregação como SUM sem problemas. A questão é que, ao fazer isso, você precisa especificar os critérios de agrupamento com GROUP BY.

Entender essas nuances do SQL é crucial para escrever consultas corretas e eficazes, e é um conhecimento fundamental para qualquer pessoa que trabalhe com banco de dados.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo