Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2026
Banco de Dados›Banco de Dados Relacionais
Código
ce228765
Banca
CESPE / CEBRASPE
Órgão
TCE-MG
Ano
2026
Nível
Superior
Cargo
Analista de Controle Externo - Especialidade: Ciência da Computação
Acerca da linguagem SQL, assinale a opção correta.
AA combinação de funções de agregação com GROUP BY permite produzir métricas agrupadas por atributos, como totais, médias e contagens segmentadas.
BA cláusula ORDER BY deve ser utilizada antes do GROUP BY para que a ordenação não interfira nos cálculos agregados.
CA aplicação de SUM e AVG exige que a consulta tenha um GROUP BY.
DA cláusula HAVING atua antes da etapa de agregação, sendo equivalente à cláusula WHERE em consultas com GROUP BY.
EA função COUNT(coluna) retorna o total de linhas da consulta, independentemente da existência de valores nulos na respectiva coluna.
Revelar gabarito e comentário▾
GabaritoA — A combinação de funções de agregação com GROUP BY permite produzir métricas agrupadas por atributos, como totais, médias e contagens segmentadas.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
SQL: funções de agregação e cláusulas
Gabarito: letra A. A alternativa A descreve corretamente o uso de funções de agregação (SUM, AVG, COUNT, MAX, MIN) com GROUP BY, permitindo métricas agrupadas. As demais alternativas contêm erros conceituais sobre ORDER BY, obrigatoriedade do GROUP BY, atuação do HAVING e comportamento do COUNT diante de NULLs.
A banca testa o conhecimento prático da linguagem SQL, especialmente a ordem e o papel de cláusulas como WHERE, GROUP BY, HAVING e ORDER BY, além das funções de agregação e o tratamento de valores nulos.
Alternativa A — ✅ Correta ⟵ GABARITO
A combinação de funções de agregação (como SUM, AVG, COUNT, MAX, MIN) com a cláusula GROUP BY é o mecanismo padrão para produzir métricas segmentadas. Por exemplo: SELECT departamento, AVG(salario) FROM funcionarios GROUP BY departamento; retorna a média salarial por departamento. A afirmativa está em conformidade com a sintaxe SQL.
Alternativa B — ❌ Incorreta
A cláusula ORDER BY deve ser utilizada após o GROUP BY, não antes. A ordem correta das cláusulas em uma consulta SQL é: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY. Portanto, ORDER BY antes do GROUP BY é sintaticamente incorreta e, mesmo se possível, não faz sentido lógico, pois a ordenação deve ocorrer sobre o resultado final, após os agrupamentos.
Alternativa C — ❌ Incorreta
Embora seja comum usar SUM e AVG com GROUP BY, essas funções não exigem a presença de GROUP BY. Elas podem ser aplicadas sobre toda a tabela, retornando um único valor agregado. Exemplo: SELECT SUM(valor) FROM vendas; é perfeitamente válido e retorna a soma total. A exigência de GROUP BY só existe quando se deseja segmentar o resultado por algum atributo.
Alternativa D — ❌ Incorreta
A cláusula HAVING atua após a etapa de agregação, servindo para filtrar grupos resultantes do GROUP BY. Já a cláusula WHERE filtra linhas individuais antes da agregação. Elas não são equivalentes, e HAVING pode utilizar funções de agregação em sua condição, o que WHERE não pode fazer. Exemplo: HAVING AVG(salario) > 5000 só é possível com HAVING.
Alternativa E — ❌ Incorreta
A função COUNT(coluna) retorna o número de linhas não nulas na coluna especificada, ignorando valores NULL. Para contar todas as linhas da consulta independentemente de nulos, deve-se usar COUNT(*) ou COUNT(1). Portanto, a afirmação de que COUNT(coluna) retorna total independentemente de nulos está errada.
PEGA ESSA DICA!
Em SQL, lembre-se:
COUNT(*) conta todas as linhas (inclusive com NULLs).
COUNT(coluna) conta apenas os valores não NULL da coluna.
GROUP BY é opcional para funções de agregação; sem ele, a agregação é sobre toda a tabela.
HAVING é o WHERE dos grupos (filtra após agregação); WHERE filtra antes.