Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2024
Banco de Dados›SQL
Código
ce188237
Banca
CESPE / CEBRASPE
Órgão
TCE-AC
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Área: Gestão de Dados
A figura a seguir representa um projeto de banco de dados
para a análise de gastos em saúde por município e por hospital.
A partir dessas informações, julgue o próximo item.
A execução da consulta SQL a seguir listará os nomes dos hospitais que tiveram gastos superiores à média geral de gastos.
CCerto
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”.
Consulta SQL com subconsulta e função de agregação AVG
Gabarito: Certo. A consulta SQL apresentada utiliza uma subconsulta na cláusula WHERE para calcular a média geral de gastos com a função de agregação AVG, e a consulta externa seleciona os nomes dos hospitais cujos gastos são superiores a essa média. Essa é a técnica correta para responder à pergunta proposta.
A questão aborda o uso de subconsultas e funções de agregação em SQL, especificamente a função AVG, que calcula a média aritmética de um conjunto de valores. A consulta em questão tem a seguinte estrutura lógica: primeiro, uma subconsulta calcula a média de todos os gastos registrados na tabela de gastos; em seguida, a consulta principal seleciona os nomes dos hospitais cujo gasto individual é maior que esse valor médio. Essa é uma abordagem clássica e correta para identificar itens que estão acima da média geral.
A função AVG é uma das funções de agregação padrão do SQL, juntamente com COUNT, SUM, MAX e MIN. Ela é usada para resumir informações de várias linhas em um único valor. No contexto da consulta, a subconsulta SELECT AVG(gasto) FROM gastos retorna um único valor: a média de todos os gastos. Esse valor é então usado na cláusula WHERE da consulta externa para filtrar os hospitais.
É importante notar que a consulta usa uma subconsulta escalar, que retorna exatamente um valor (a média). Esse valor é comparado com o gasto de cada hospital na consulta externa. A comparação é feita com o operador > (maior que), que é o operador correto para selecionar valores estritamente superiores à média. Se o operador fosse >= (maior ou igual), a consulta também incluiria hospitais com gastos exatamente iguais à média, o que não atenderia ao requisito de "superiores à média".
A pegadinha que a banca poderia explorar é a troca do operador de comparação ou a ausência da subconsulta, mas no caso apresentado a consulta está correta. A subconsulta é essencial para calcular a média geral, pois sem ela não seria possível comparar cada gasto individual com a média de todos os gastos. A consulta externa seleciona apenas os nomes dos hospitais, conforme solicitado no enunciado.
NÃO CAIA NESSA!
A banca pode tentar confundir o candidato trocando o operador > por >= ou =, ou ainda omitindo a subconsulta. Nesta questão, a consulta está correta, mas é fundamental verificar se a subconsulta está presente e se o operador de comparação é o adequado. Com treino, você identifica essas armadilhas rapidamente.
1Subconsulta calcula AVG
2Retorna valor único
3WHERE compara gasto > média
4Seleciona nomes acima
LEVEL · soulevel.com.br
Item — ✅ Certo
A consulta SQL listará os nomes dos hospitais que tiveram gastos superiores à média geral de gastos. A subconsulta SELECT AVG(gasto) FROM gastos calcula a média de todos os gastos, e a consulta externa SELECT nome FROM hospital WHERE gasto > (SELECT AVG(gasto) FROM gastos) seleciona os hospitais cujo gasto é maior que essa média. A estrutura está correta e atende exatamente ao que o enunciado pede.