ANC - Analista em Computação - Ênfase em Ciências de Dados
Sobre as funções de agregação em SQL, é correto afirmar que:
A[HAVING condição] limita os grupos a serem mostrados, sendo similar à cláusula WHERE, mas aplica-se somente a agrupamentos.
BCOUNT(coluna) retorna o número de linhas em uma tabela, inclusive linhas duplicadas e linhas contendo nulos em uma coluna.
CORDER BY coluna1, por default, é a ordenação descendente.
DAVG() retorna a somatória dos valores de um conjunto.
ECOUNT(*) retorna o número de linhas não nulas da coluna.
Revelar gabarito e comentário▾
GabaritoA — [HAVING condição] limita os grupos a serem mostrados, sendo similar à cláusula WHERE, mas aplica-se somente a agrupamentos.
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”.
Funções de Agregação em SQL
Gabarito: letra A. A cláusula HAVING é de fato utilizada para filtrar grupos de registros após a aplicação do GROUP BY, funcionando de forma análoga à cláusula WHERE — mas aplicada a agrupamentos, não a linhas individuais. As demais alternativas apresentam erros conceituais sobre COUNT, ORDER BY e AVG.
Análise das alternativas:
Função/Cláusula
Descrição Correta
Erro na Alternativa
HAVING
Filtra grupos após GROUP BY, similar ao WHERE para agrupamentos
Alternativa A correta
COUNT(coluna)
Conta linhas com valor não nulo na coluna
Alternativa B errada: inclui nulos
ORDER BY
Padrão é ascendente (ASC)
Alternativa C errada: afirma descendente
AVG()
Retorna a média aritmética
Alternativa D errada: afirma somatória
COUNT(*)
Conta todas as linhas, inclusive com nulos
Alternativa E errada: afirma contar não nulos
Funções de agregação SQL: HAVING (Filtra grupos (WHERE dos grupos), Após GROUP BY); COUNT(coluna) (Conta valores não nulos, Exclui NULLs); COUNT(*) (Conta todas as linhas, Inclui NULLs); ORDER BY (Padrão: ASC (crescente), DESC é explícito); AVG() (Média aritmética, Não é soma (SUM))
Alternativa A — ✅ Correta ⟵ GABARITO
A descrição está precisa: a cláusula HAVING impõe condições sobre grupos formados pelo GROUP BY, enquanto a cláusula WHERE filtra linhas antes do agrupamento. É comum dizer que HAVING é o "WHERE dos grupos".
Alternativa B — ❌ Incorreta
A função COUNT(nome_coluna) conta o número de linhas em que o valor da coluna especificada não é nulo. Portanto, diferentemente do que afirma a alternativa, as linhas que contêm NULL na coluna são excluídas da contagem. Linhas duplicadas, por outro lado, são contadas normalmente (a menos que se use DISTINCT). O erro está em afirmar que "inclusive linhas contendo nulos" são contadas.
Alternativa C — ❌ Incorreta
O comportamento padrão (default) da cláusula ORDER BY é a ordenação ascendente (ASC). Para obter a ordem descendente é necessário especificar a palavra-chave DESC. Portanto a afirmativa está trocando o padrão.
Alternativa D — ❌ Incorreta
A função AVG() retorna a média aritmética dos valores de um conjunto, e não a somatória. A função que retorna a soma é SUM().
Alternativa E — ❌ Incorreta
COUNT() conta todas as linhas da tabela, independentemente de conterem valores nulos ou não. A alternativa afirma erroneamente que retorna "o número de linhas não nulas da coluna" — essa descrição se aplica a COUNT(coluna), não a COUNT().
PEGA ESSA DICA!
Grave a diferença: COUNT(*) conta linhas; COUNT(coluna) conta valores não nulos na coluna. ORDER BY padrão é ASC; DESC precisa ser explícito. HAVING funciona sobre grupos; WHERE sobre linhas.