Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Quadrix 2023

Banco de DadosSQL
Código
qg025996
Banca
Quadrix
Órgão
CREA-GO
Ano
2023
Nível
Superior
Cargo
Analista de Área - T.I

Imagem da questão

Com base no modelo de dados e no código SQL acima apresentados, julgue o item.A consulta SQL tem como finalidade retornar somente os dados do engenheiro que tirou a nota mais alta em todos os cursos.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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: engenheiro com maior nota por curso

Gabarito: ERRADO (letra E). A consulta não retorna "somente os dados do engenheiro que tirou a nota mais alta em todos os cursos"; ela retorna, para cada engenheiro, o registro do curso com a data de término mais recente (e a nota correspondente), filtrando apenas os cursos já concluídos. O erro está em confundir a lógica de "último curso concluído" com a de "maior nota".

A consulta usa uma subconsulta correlacionada para identificar, para cada engenheiro, a data de término máxima (MAX(ec1.data_fim)) entre seus cursos concluídos. O JOIN principal então seleciona apenas o registro de engenheiro_curso que corresponde a essa data máxima para cada engenheiro. Ou seja, o resultado é um registro por engenheiro, contendo os dados do seu curso mais recentemente concluído — não a maior nota.

Vamos decompor a consulta para entender exatamente o que ela faz:

  1. Subconsulta t1: Agrupa por crea (identificador do engenheiro) e calcula MAX(ec1.data_fim) — a data de término mais recente entre os cursos concluídos (data_fim is not null) de cada engenheiro.

  2. Junção principal: Faz INNER JOIN entre engenheiro_curso e a subconsulta t1 nas colunas crea e data_fim. Isso garante que, para cada engenheiro, apenas o registro com a data de término máxima seja selecionado.

  3. Junção com curso: Busca a descrição do curso correspondente.

  4. Projeção: Retorna crea, data_fim, nota (arredondada) e classificacao.

Portanto, a consulta retorna, para cada engenheiro, o seu curso mais recentemente concluído, com a respectiva nota. Não há nenhuma lógica de comparação de notas entre engenheiros ou entre cursos. A afirmação do enunciado é incorreta.

  1. 1Agrupa por engenheiro
  2. 2MAX(data_fim) por grupo
  3. 3JOIN no curso mais recente
  4. 4Retorna 1 registro por engenheiro
LEVEL · soulevel.com.br

Item — ❌ ERRADO

A afirmação diz que a consulta retorna "somente os dados do engenheiro que tirou a nota mais alta em todos os cursos". Isso está errado por dois motivos principais:

  • Não há comparação de notas: A consulta não utiliza MAX(nota), ORDER BY nota DESC, ou qualquer função de agregação sobre a coluna nota. A única função de agregação é MAX(data_fim), que identifica o curso mais recente, não o de maior nota.

  • Retorna um registro por engenheiro: A consulta retorna dados de todos os engenheiros que possuem pelo menos um curso concluído, não apenas de um único engenheiro. Para cada um, ela traz o curso com a data de término mais recente.

Para retornar o engenheiro com a maior nota em todos os cursos, a consulta precisaria, por exemplo, usar MAX(nota) e depois selecionar o engenheiro correspondente, ou usar ORDER BY nota DESC com LIMIT 1 (ou FETCH FIRST). Nenhuma dessas lógicas está presente.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qg025996