Pular para o conteúdo principal

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

Banco de DadosSQL
Código
ce188239
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 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 do hospital.Imagem 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”.
SE LIGUE NESSA!

Esta questão depende de uma figura que apresenta o projeto de banco de dados e a consulta SQL original, que não está disponível aqui. O raciocínio abaixo é o método de resolução — confira a estrutura das tabelas e a consulta na prova original.

SQL: criação de view com agregação e ordenação

Gabarito: Certo (C). A descrição do enunciado — criar uma view que lista o total de gastos por município e hospital, agrupa por essas colunas, calcula a soma e ordena de forma decrescente pelo maior gasto e depois pelo nome do município e do hospital — é exatamente o que uma consulta SQL com CREATE VIEW, GROUP BY, SUM e ORDER BY faz. A sintaxe descrita está correta e atende ao que se propõe.

Uma view (ou visão) é uma tabela virtual derivada de outras tabelas, definida por uma consulta SQL armazenada no banco de dados. Ela não armazena dados fisicamente (a menos que seja materializada); ao ser referenciada, a consulta que a define é executada, retornando os dados atuais das tabelas base. No contexto da questão, a view criada serve para consolidar gastos em saúde por município e hospital, facilitando análises e relatórios.

A consulta descrita segue a estrutura típica de agregação em SQL:

CREATE VIEW nome_da_view AS
SELECT municipio, hospital, SUM(valor_gasto) AS total_gasto
FROM tabela_de_gastos
GROUP BY municipio, hospital
ORDER BY total_gasto DESC, municipio, hospital;

O GROUP BY agrupa as linhas que têm os mesmos valores nas colunas especificadas (município e hospital), e a função de agregação SUM calcula a soma dos valores de gasto para cada grupo. O ORDER BY ordena o resultado: primeiro pelo total de gasto em ordem decrescente (DESC), e, em caso de empate, pelo nome do município e depois pelo nome do hospital, ambos em ordem crescente (padrão).

A ordem de execução lógica das cláusulas em uma consulta SQL é: FROMWHEREGROUP BYHAVINGSELECTORDER BY. Isso significa que o ORDER BY é aplicado após a agregação, podendo referenciar os apelidos (aliases) definidos no SELECT, como total_gasto. Portanto, a ordenação descrita é válida.

A pegadinha que a banca poderia explorar é inverter a ordem de ordenação (por exemplo, ordenar pelo nome antes do gasto) ou usar HAVING em vez de WHERE para filtrar grupos, mas a descrição do enunciado está correta. Também é comum confundir GROUP BY com ORDER BY, mas aqui ambos são usados adequadamente.

Guarde a estrutura: CREATE VIEW + SELECT com agregação + GROUP BY + ORDER BY. É exatamente essa combinação que a questão descreve, e é o que você deve verificar na consulta original da prova.

  1. 1FROM
  2. 2WHERE
  3. 3GROUP BY
  4. 4HAVING
  5. 5SELECT
  6. 6ORDER BY
LEVEL · soulevel.com.br

Alternativa C — ✅ Certo ⟵ GABARITO

A descrição está correta: a consulta cria uma view (CREATE VIEW), lista o total de gastos por município e hospital (colunas no SELECT), agrupa por essas colunas (GROUP BY), calcula a soma dos valores (SUM) e ordena de forma decrescente pelo maior gasto (ORDER BY ... DESC) e depois pelo nome do município e do hospital. A sintaxe e a semântica descritas são válidas em SQL padrão.

Alternativa E — ❌ Errado

Esta alternativa afirma que a descrição está incorreta, mas ela está correta. Não há erro na descrição: a consulta faz exatamente o que o enunciado diz. Portanto, a alternativa E é falsa.

Gabarito: letra C

Link permanente: /questoes/ce188239