Pular para o conteúdo principal

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

Banco de DadosSQL
Código
qq896710
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Administração de Dados
Qual é a diferença entre a cláusula WHERE e a cláusula HAVING em uma consulta SQL?
  1. AWHERE é usada para filtrar registros com base em critérios especificados, enquanto HAVING é usada para filtrar grupos agregados com base em critérios especificados.
  2. BWHERE é usada para ordenar registros com base em critérios especificados, enquanto HAVING é usada para filtrar registros com base em critérios especificados.
  3. CWHERE e HAVING são usadas de forma intercambiável em consultas SQL.
  4. DWHERE é usada para agrupar registros com base em critérios especificados, enquanto HAVING é usada para filtrar registros com base em critérios especificados.
  5. EWHERE é usada para agrupar registros com base em critérios especificados, enquanto HAVING é usada para ordenar registros com base em critérios especificados.
Revelar gabarito e comentário

GabaritoA — WHERE é usada para filtrar registros com base em critérios especificados, enquanto HAVING é usada para filtrar grupos agregados com base em critérios especificados.

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”.

Cláusulas WHERE e HAVING no SQL

Gabarito: letra A. A cláusula WHERE filtra registros individuais (linhas) antes da agregação, enquanto a cláusula HAVING filtra grupos já agregados, após a aplicação do GROUP BY. Essa é a distinção fundamental entre as duas, conforme o padrão SQL.

A tabela abaixo resume as diferenças:

Característica

WHERE

HAVING

Momento da filtragem

Antes da agregação (linhas individuais)

Após a agregação (grupos)

Uso típico

Condições sobre colunas individuais

Condições sobre funções agregadas (ex.: COUNT, SUM)

Exige GROUP BY?

Não

Sim, geralmente

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa descreve corretamente a diferença: WHERE filtra registros com base em critérios especificados (linhas), e HAVING filtra grupos agregados com base em critérios. É exatamente o papel de cada cláusula em uma consulta SQL.

Alternativa B — ❌ Incorreta

WHERE não é usada para ordenar registros; a ordenação é feita pela cláusula ORDER BY. HAVING, por sua vez, filtra grupos, não registros.

Alternativa C — ❌ Incorreta

WHERE e HAVING não são intercambiáveis. Cada uma tem seu momento de aplicação e seus próprios critérios de uso. WHERE age antes da agregação; HAVING, após.

Alternativa D — ❌ Incorreta

WHERE não agrupa registros; quem agrupa é a cláusula GROUP BY. HAVING filtra grupos (após GROUP BY), não registros individuais.

Alternativa E — ❌ Incorreta

WHERE não agrupa; HAVING não ordena. A ordenação é feita por ORDER BY, e o agrupamento por GROUP BY.

A compreensão correta do fluxo de execução de uma consulta SQL (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY) é essencial para não confundir as cláusulas. WHERE atua no momento de filtragem de linhas, HAVING no momento de filtragem de grupos.

Gabarito: letra A.

Link permanente: /questoes/qq896710