Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — FUNDATEC 2025

Banco de DadosBanco de Dados Relacionais
Código
qg474858
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação / Ênfase em Análise de Sistemas / Gerência de Projetos de TI
Para contar quantos pedidos cada cliente fez, qual combinação de cláusulas SQL seria mais apropriada?
  1. ACOUNT(*) e ORDER BY
  2. BSUM(VALOR) e HAVING
  3. CCOUNT(PEDIDOS.ID) e GROUP BY CLIENTES.ID
  4. DMAX(VALOR) e WHERE
  5. ESELECT DISTINCT e JOIN
Revelar gabarito e comentário

GabaritoC — COUNT(PEDIDOS.ID) e GROUP BY CLIENTES.ID

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: Funções de Agregação e Agrupamento

Gabarito: letra C. Para contar quantos pedidos cada cliente fez, a combinação adequada é COUNT(PEDIDOS.ID) (função de agregação que conta o número de linhas) com GROUP BY CLIENTES.ID (agrupa os resultados por cliente). Isso retorna uma linha por cliente com o total de pedidos daquele cliente.

A banca testa o conhecimento sobre funções de agregação (COUNT, SUM, MAX, etc.) e a cláusula GROUP BY, que é obrigatória quando se deseja agregar dados por grupo (neste caso, por cliente). Sem o GROUP BY, o COUNT contaria todas as linhas da tabela, sem separar por cliente.

As demais alternativas não atendem ao requisito:

  1. 1COUNT(PEDIDOS.ID)
  2. 2GROUP BY CLIENTES.ID
  3. 3Resultado: total por cliente
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

COUNT(*) e ORDER BY: ORDER BY serve para ordenar o resultado, não para agrupar. Faltaria o GROUP BY para contar por cliente.

Alternativa B — ❌ Incorreta

SUM(VALOR) e HAVING: SUM soma valores, não conta pedidos; HAVING é usado para filtrar grupos após o GROUP BY, mas não substitui o agrupamento.

Alternativa C — ✅ Correta ⟵ GABARITO

COUNT(PEDIDOS.ID) conta os pedidos (cada pedido tem um ID único) e GROUP BY CLIENTES.ID agrupa por cliente. Exatamente o necessário.

Alternativa D — ❌ Incorreta

MAX(VALOR) e WHERE: MAX retorna o maior valor de uma coluna, não conta; WHERE filtra linhas antes do agrupamento, não agrupa.

Alternativa E — ❌ Incorreta

SELECT DISTINCT e JOIN: SELECT DISTINCT elimina duplicatas, mas não conta; JOIN combina tabelas, mas sem GROUP BY e COUNT não é possível contar por grupo.

PEGA ESSA DICA!

Lembre-se: sempre que a pergunta envolver "por cada" (por cliente, por departamento, por mês), você precisará de GROUP BY mais uma função de agregação (COUNT, SUM, AVG, etc.). HAVING é o "WHERE do GROUP BY" (filtra grupos), não o agrupamento em si.

Gabarito: letra C.

Link permanente: /questoes/qg474858