FC ConcursosFC Concursos

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

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

  1. Junção das Tabelas (JOIN)
    • A tabela gastos é unida à tabela hospital através da chave estrangeira id_hospital.
    • Isso permite associar os gastos de cada hospital ao seu respectivo nome.
  2. Agrupamento e Soma (GROUP BY e SUM)
    • 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.
  3. 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 HAVING então compara o total de gastos de cada hospital com essa média.
  4. Ordenação (ORDER BY)
    • Os hospitais são listados em ordem alfabética (ORDER BY nome_hospital).

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 hospital garante 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

Continue aprendendo