Pular para o conteúdo principal

Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2024

Banco de DadosSQL
Código
ce190495
Banca
CESPE / CEBRASPE
Órgão
TSE
Ano
2024
Nível
Superior
Cargo
Analista Judiciário – Área: Apoio Especializado – Especialidade: Tecnologia da Informação
Com base na tabela de nome vendas apresentada acima e nos conceitos de SQL, DLL e DML, julgue o próximo item.Captura_de tela 2024-12-17 082649.png 443×124A execução do comando SQL a seguir apresentará a soma de todas as vendas cujo valor excede 150.00.SELECT SUM(valorVenda) FROM vendas WHERE valorVenda > 150.00;
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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ção de agregação SUM com filtro WHERE

Gabarito: Certo (C). O comando SELECT SUM(valorVenda) FROM vendas WHERE valorVenda > 150.00; soma apenas os valores da coluna valorVenda que são estritamente maiores que 150.00, pois a cláusula WHERE filtra as linhas antes da agregação SUM. A sintaxe está correta e o comportamento é exatamente o descrito no enunciado.

A função SUM é uma função de agregação do SQL que retorna a soma dos valores de uma coluna numérica. Ela é sempre combinada com a cláusula SELECT e, quando usada com WHERE, o filtro é aplicado antes da agregação. Isso significa que o banco de dados primeiro seleciona as linhas que atendem à condição valorVenda > 150.00 e, somente depois, soma os valores da coluna valorVenda dessas linhas.

A cláusula WHERE é um dos elementos mais fundamentais do SQL, usada para filtrar registros com base em uma condição. No comando em questão, a condição é valorVenda > 150.00, que utiliza o operador relacional > (maior que). Esse operador é exclusivo — ou seja, valores exatamente iguais a 150.00 não são incluídos no resultado, pois a condição exige que o valor seja estritamente maior.

Para entender melhor, considere um exemplo prático. Suponha que a tabela vendas tenha os seguintes registros na coluna valorVenda: 100.00, 150.00, 200.00, 250.00 e 300.00. O comando SELECT SUM(valorVenda) FROM vendas WHERE valorVenda > 150.00; filtraria apenas os valores 200.00, 250.00 e 300.00, e a soma retornada seria 750.00. O valor 150.00 seria excluído por não ser estritamente maior que 150.00.

A distinção importante aqui é entre > (maior que) e >= (maior ou igual a). Se o comando usasse >=, o valor 150.00 seria incluído. A banca explora exatamente essa diferença sutil: o candidato pode ler rapidamente e pensar que a condição inclui valores iguais a 150.00, mas o operador > exclui esse valor. Além disso, é fundamental lembrar que SUM ignora valores NULL na coluna, mas isso não afeta a correção do comando, pois a condição WHERE já filtra as linhas.

Outro ponto que merece destaque é a diferença entre WHERE e HAVING. Enquanto WHERE filtra linhas individuais antes da agregação, HAVING filtra grupos depois da agregação. No comando em questão, o uso de WHERE é correto porque o filtro é sobre valores individuais da coluna, não sobre o resultado agregado. Se a intenção fosse filtrar o resultado da soma (por exemplo, somas maiores que um valor), seria necessário usar HAVING.

A pegadinha desta questão está na interpretação do operador > e na ordem de execução das cláusulas. O candidato pode pensar que o comando soma todas as vendas e depois filtra, mas na verdade o filtro é aplicado primeiro. Além disso, a banca pode tentar confundir com o operador >=, que incluiria o valor 150.00. Fique atento a esses detalhes.

NÃO CAIA NESSA!

A banca explora a diferença entre > e >=. O comando usa > (maior que), que exclui valores exatamente iguais a 150.00. Se fosse >=, o valor 150.00 seria incluído. Além disso, lembre-se de que WHERE filtra antes da agregação, não depois.

  1. 1FROM (tabela)
  2. 2WHERE (filtro)
  3. 3SUM (agregação)
  4. 4SELECT (projeção)
LEVEL · soulevel.com.br

Item — ✅ CERTO

O comando SELECT SUM(valorVenda) FROM vendas WHERE valorVenda > 150.00; está correto. A função SUM soma os valores da coluna valorVenda, e a cláusula WHERE filtra apenas as linhas em que o valor é estritamente maior que 150.00. A ordem de execução é: primeiro o filtro WHERE, depois a agregação SUM. Portanto, o resultado é exatamente a soma de todas as vendas cujo valor excede 150.00.

Gabarito: Certo (C)

Link permanente: /questoes/ce190495