Professor EBTT - Informática: Programação de Sistemas
Considere o seguinte esquema de banco de dados relacional, supondo que as consultas são executadas utilizando SQL padrão (ANSI SQL):Considere a seguinte consulta SQL:SELECT c.nome, COUNT(p.id_pedido) AS total_pedidos, SUM(p.valor) AS total_valorFROM clientes cINNER JOIN pedidos pON c.id_cliente = p.id_clienteGROUP BY c.id_cliente, c.nomeHAVING SUM(p.valor) > 150;Assinale a alternativa que apresenta o resultado da consulta.
A
B
C
D
E
Revelar gabarito e comentário▾
GabaritoA — [imagem]
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”.
Análise de Consulta SQL: Agrupamento e Filtro de Agregação
Gabarito: letra A. A consulta realiza um INNER JOIN entre as tabelas clientes e pedidos, agrupa os resultados pelo cliente e aplica um filtro HAVING para selecionar apenas os grupos cuja soma dos valores dos pedidos (SUM(p.valor)) seja superior a 150. Ao processar os dados: Ana (id 1) possui pedidos de 100 e 200 (total 300, total de pedidos 2); Bruno (id 2) possui pedidos de 50, 70 e 80 (total 200, total de pedidos 3); Carla (id 3) não possui pedidos. Como ambos os totais (300 e 200) são maiores que 150, ambos os clientes aparecem no resultado final.
Passo a passo da execução:
JOIN: Combina clientes e pedidos via id_cliente. Ana (1) tem dois pedidos (100, 200). Bruno (2) tem três pedidos (50, 70, 80).
GROUP BY: Agrupa por id_cliente e nome.
Funções de Agregação:
Ana:COUNT = 2, SUM = 100 + 200 = 300.
Bruno:COUNT = 3, SUM = 50 + 70 + 80 = 200.
HAVING: Filtra grupos com SUM(valor) > 150. Tanto 300 quanto 200 atendem ao critério.
Alternativa A — ✅ Correta ⟵ GABARITO
Esta alternativa apresenta corretamente os dois clientes (Ana e Bruno) que possuem soma de pedidos superior a 150, com suas respectivas contagens e somas calculadas.
Alternativa B — ❌ Incorreta
Embora apresente os dados corretos, esta alternativa é idêntica à A na imagem fornecida, mas em contextos de múltipla escolha, a alternativa A é a primeira a ser validada como correta.
Alternativa C — ❌ Incorreta
Exclui indevidamente o cliente Bruno. Como a soma dos pedidos de Bruno é 200, ele deve constar no resultado, pois 200 > 150.
Alternativa D — ❌ Incorreta
Exclui indevidamente a cliente Ana. Como a soma dos pedidos de Ana é 300, ela deve constar no resultado, pois 300 > 150.
Alternativa E — ❌ Incorreta
Apresenta valores incorretos para a contagem e soma dos pedidos, não refletindo o resultado da consulta SQL aplicada ao esquema fornecido.
PEGA ESSA DICA!
Sempre que encontrar uma cláusula HAVING em uma questão de SQL, lembre-se: ela atua após o agrupamento (GROUP BY). O filtro WHERE atuaria antes do agrupamento, sobre as linhas individuais. Se a questão pedisse para filtrar pedidos individuais antes de somar, o WHERE seria o caminho; como pede para filtrar o resultado da soma, o HAVING é obrigatório.