Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — CESPE / CEBRASPE 2025

Banco de DadosConsultas e Comandos em SQL
Código
ce417344
Banca
CESPE / CEBRASPE
Órgão
FUB
Ano
2025
Cargo
Tec ( )
Julgue o item a seguir, que versa sobre administração de banco de dados.   A cláusula HAVING opera em um único conjunto de dados de entrada, sem agregação.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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 – Cláusula HAVING e Agregação

Gabarito: Errado. A cláusula HAVING não opera em um único conjunto de dados de entrada sem agregação; ela é usada justamente para filtrar os resultados de uma agregação, aplicando condições sobre os grupos formados pela cláusula GROUP BY. A afirmação inverte o papel da cláusula, que é essencialmente dependente de agregação.

A cláusula HAVING é um dos recursos mais cobrados em SQL, e a confusão com a cláusula WHERE é clássica. Ambas servem para filtrar dados, mas em momentos diferentes do processamento da consulta. A WHERE atua sobre as linhas individuais da tabela, antes de qualquer agrupamento ou agregação. Já a HAVING atua sobre os grupos já formados, ou seja, depois que a agregação foi calculada. É por isso que a HAVING pode referenciar funções de agregação como COUNT, SUM, AVG, MAX e MIN, enquanto a WHERE não pode.

Para entender na prática, imagine uma tabela de vendas com colunas produto e valor. Se você quiser listar apenas os produtos cuja soma de vendas seja maior que R$ 1.000,00, a consulta seria:

SELECT produto, SUM(valor) AS total
FROM vendas
GROUP BY produto
HAVING SUM(valor) > 1000;

Aqui, o GROUP BY agrupa as vendas por produto, o SUM(valor) calcula o total de cada grupo, e o HAVING filtra os grupos que não atingem o total mínimo. Sem a agregação, a HAVING não teria o que filtrar. A afirmação do enunciado, portanto, está incorreta ao dizer que a HAVING opera "sem agregação".

A distinção entre WHERE e HAVING é o ponto central que a banca explora. Enquanto a WHERE filtra linhas antes do agrupamento, a HAVING filtra grupos depois da agregação. Essa diferença de momento é o que define qual cláusula usar em cada situação. A pegadinha aqui é justamente inverter essa lógica, afirmando que a HAVING não tem relação com agregação, quando na verdade ela é a ferramenta específica para filtrar resultados agregados.

Cláusulas de filtro em SQL
  • 1WHERE
    • Filtra linhas individuais
    • Antes do agrupamento
    • Não usa funções agregadas
  • 2HAVING
    • Filtra grupos formados
    • Depois da agregação
    • Usa COUNT, SUM, AVG, MAX, MIN
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

A banca inverte o papel da cláusula HAVING, afirmando que ela opera sem agregação. O candidato que confunde HAVING com WHERE cai na armadilha. Lembre-se: WHERE filtra linhas, HAVING filtra grupos. A HAVING só faz sentido quando há agregação, pois é ela que permite filtrar os resultados das funções agregadas.

ERRADO. A cláusula HAVING é usada para filtrar grupos após a agregação, e não opera em um único conjunto de dados sem agregação.

Gabarito: Errado.

Link permanente: /questoes/ce417344