Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — CESPE / CEBRASPE 2024

Banco de DadosConsultas e Comandos em SQL
Código
ce403644
Banca
CESPE / CEBRASPE
Órgão
TCE AC
Ano
2024
Cargo
ATI ( )
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 consulta SQL a seguir cria uma view para listar o total de gastos por município e hospital, bem como agrupa os resultados por município e hospital, calcula a soma dos valores gastos e ordena os resultados, de forma decrescente, pelo maior gasto e, depois, pelo nome do município e dohospital.   create view total_gastos_por_municipio as select nome_municipio as municipio, nome_hospital as hospital, sum(valor_gasto) as total from municipio m join hospital h on m.id_municipio = h.id_municipio join gastos g on h.id_hospital = g.id_hospital group by 1,2 order by 3 desc,1,2Imagem associada para resolução da questão
  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 – Criação de View com Agregação e Ordenação

Gabarito: Certo. A consulta SQL apresentada está correta: ela cria uma view que agrupa os gastos por município e hospital, calcula a soma dos valores gastos e ordena os resultados de forma decrescente pelo total e, em seguida, pelo nome do município e do hospital. A sintaxe utilizada é válida no padrão SQL, incluindo o uso de GROUP BY 1,2 e ORDER BY 3 desc,1,2, que referenciam as posições das colunas na lista de seleção.

A questão cobra o entendimento de uma consulta SQL que envolve a criação de uma view, junções entre tabelas, agregação de dados e ordenação. Vamos analisar cada parte da consulta para confirmar que ela atende exatamente ao que o enunciado descreve.

Primeiro, a instrução CREATE VIEW total_gastos_por_municipio AS cria uma view chamada total_gastos_por_municipio. Uma view é uma tabela virtual que armazena uma consulta definida pelo usuário. Ela não armazena dados fisicamente (a menos que seja materializada), mas apresenta os resultados da consulta como se fosse uma tabela. No contexto do enunciado, a view é criada para listar os gastos por município e hospital.

A consulta dentro da view faz um SELECT que seleciona as colunas nome_municipio (com alias municipio), nome_hospital (com alias hospital) e a soma de valor_gasto (com alias total). A função SUM(valor_gasto) é uma função de agregação que calcula a soma dos valores gastos. Para que essa função funcione corretamente, é necessário agrupar os resultados por município e hospital, o que é feito pela cláusula GROUP BY 1,2. Os números 1 e 2 referem-se às posições das colunas na lista de seleção, ou seja, municipio (posição 1) e hospital (posição 2). Isso é equivalente a GROUP BY nome_municipio, nome_hospital.

A consulta também faz junções entre as tabelas municipio, hospital e gastos. A junção municipio m JOIN hospital h ON m.id_municipio = h.id_municipio relaciona as tabelas de município e hospital pela chave id_municipio. Em seguida, JOIN gastos g ON h.id_hospital = g.id_hospital relaciona a tabela de hospital com a de gastos pela chave id_hospital. Essas junções garantem que os gastos sejam associados corretamente aos municípios e hospitais.

Por fim, a cláusula ORDER BY 3 desc,1,2 ordena os resultados. O número 3 refere-se à coluna total (posição 3 na lista de seleção), e desc indica ordenação decrescente. Em seguida, ordena por municipio (posição 1) e hospital (posição 2), ambos em ordem crescente (padrão). Isso corresponde exatamente ao que o enunciado descreve: "ordena os resultados, de forma decrescente, pelo maior gasto e, depois, pelo nome do município e do hospital".

Portanto, a consulta está correta e atende a todos os requisitos do enunciado.

  1. 1CREATE VIEW
  2. 2SELECT com SUM
  3. 3JOINs entre tabelas
  4. 4GROUP BY 1,2
  5. 5ORDER BY 3 desc,1,2
LEVEL · soulevel.com.br

Item — ✅ Certo

A consulta SQL está correta. Ela cria uma view que lista o total de gastos por município e hospital, agrupa os resultados por essas duas colunas, calcula a soma dos valores gastos e ordena os resultados de forma decrescente pelo total e, depois, pelo nome do município e do hospital. A sintaxe é válida no padrão SQL, incluindo o uso de GROUP BY 1,2 e ORDER BY 3 desc,1,2, que referenciam as posições das colunas na lista de seleção.

Gabarito: Certo

Link permanente: /questoes/ce403644