Pular para o conteúdo principal

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

Banco de DadosSQL
Código
qg686019
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
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):Imagem associada para resolução da questãoConsidere 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.
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
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:

  1. JOIN: Combina clientes e pedidos via id_cliente. Ana (1) tem dois pedidos (100, 200). Bruno (2) tem três pedidos (50, 70, 80).

  2. GROUP BY: Agrupa por id_cliente e nome.

  3. Funções de Agregação:

    • Ana: COUNT = 2, SUM = 100 + 200 = 300.

    • Bruno: COUNT = 3, SUM = 50 + 70 + 80 = 200.

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

Link permanente: /questoes/qg686019