Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2023

Banco de DadosSQL
Código
qq897095
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Ciências de Dados
Sobre as funções de agregação em SQL, é correto afirmar que:
  1. A[HAVING condição] limita os grupos a serem mostrados, sendo similar à cláusula WHERE, mas aplica-se somente a agrupamentos.
  2. BCOUNT(coluna) retorna o número de linhas em uma tabela, inclusive linhas duplicadas e linhas contendo nulos em uma coluna.
  3. CORDER BY coluna1, por default, é a ordenação descendente.
  4. DAVG() retorna a somatória dos valores de um conjunto.
  5. 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

1HAVING
Filtra grupos (WHERE dos grupos)
Após GROUP BY
2COUNT(coluna)
Conta valores não nulos
Exclui NULLs
3COUNT(*)
Conta todas as linhas
Inclui NULLs
4ORDER BY
Padrão: ASC (crescente)
DESC é explícito
5AVG()
Média aritmética
Não é soma (SUM)
Funções de agregação SQL
LEVELsoulevel.com.br
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.

Gabarito: letra A.

Link permanente: /questoes/qq897095