Questão FC90519
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 exec
Linguagem SQL
CEBRASPE (CESPE) · 2024

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.
SELECT nome_hospital, sum(g.valor_gasto) as
total
FROM gastos g JOIN hospital h
ON g.id_hospital = h.id_hospital
group by nome_hospital
having sum(g.valor_gasto) >
(SELECT AVG(valor_gasto)
FROM gastos)
ORDER BY nome_hospital
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
Comentário: O gabarito está correto porque a consulta SQL realmente lista os hospitais cujos gastos totais são superiores à média geral de gastos. Vamos entender como isso funciona.
Explicação da Consulta
- Junção das Tabelas (
JOIN)- A tabela
gastosé unida à tabelahospitalatravés da chave estrangeiraid_hospital. - Isso permite associar os gastos de cada hospital ao seu respectivo nome.
- A tabela
- Agrupamento e Soma (
GROUP BYeSUM)- A consulta agrupa os dados pelo nome do hospital (
GROUP BY nome_hospital). - Para cada hospital, a função
SUM(g.valor_gasto)calcula o total de gastos.
- A consulta agrupa os dados pelo nome do hospital (
- Filtragem dos Registros (
HAVING)- A cláusula
HAVINGé utilizada para filtrar os hospitais cujo total de gastos seja maior que a média geral de gastos. - A subconsulta
(SELECT AVG(valor_gasto) FROM gastos)retorna a média geral de gastos de todos os hospitais. - O
HAVINGentão compara o total de gastos de cada hospital com essa média.
- A cláusula
- Ordenação (
ORDER BY)- Os hospitais são listados em ordem alfabética (
ORDER BY nome_hospital).
- Os hospitais são listados em ordem alfabética (
Por que a consulta está correta?
- O HAVING é usado corretamente para filtrar os hospitais que têm gastos acima da média.
- A subconsulta que calcula a média geral está bem formulada e retorna um único valor, o que permite a comparação.
- O JOIN com a tabela
hospitalgarante que os nomes dos hospitais sejam exibidos corretamente. - A estrutura está correta para qualquer base de dados SQL compatível.
Conteúdo do catálogo FC Concursos · Atualizado em