Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2024

Banco de DadosSQL
Código
qg174753
Banca
FUNDATEC
Órgão
Prefeitura de Passo Fundo - RS
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação

Para responder à questão, considere um banco de dados PostgreSQL no qual um analista de sistemas executou, com sucesso, os comandos SQL abaixo: 


Imagem da questão

Após a execução de outro comando SQL, o analista obteve o seguinte resultado:Imagem associada para resolução da questãoAssinale a alternativa que apresenta o comando SQL que o analista executou.
  1. Aselect id from logs where valor<200
  2. Bselect id from logs where valor>=200
  3. Cselect id from logs limit 2
  4. Dselect id from logs order by valor limit 2
  5. Eselect id from logs order by valor desc limit 2
Revelar gabarito e comentário

GabaritoE — select id from logs order by valor desc limit 2

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

Comando SQL: ORDER BY e LIMIT

Gabarito: letra E. O comando select id from logs order by valor desc limit 2 é o único que retorna os dois registros com os maiores valores da coluna valor, conforme o resultado apresentado na imagem. A cláusula ORDER BY valor DESC ordena os registros do maior para o menor valor, e LIMIT 2 restringe o resultado às duas primeiras linhas dessa ordenação. A questão exige que você identifique qual comando SQL produz exatamente o resultado mostrado na figura. A alternativa E é a única que combina ordenação decrescente com limitação de linhas, o que é a forma típica de obter os registros com os maiores valores de uma coluna. Vamos entender cada cláusula envolvida. O SELECT especifica as colunas a serem retornadas (no caso, apenas id). O WHERE filtra linhas com base em uma condição. O ORDER BY classifica o resultado em ordem crescente (ASC, padrão) ou decrescente (DESC). O LIMIT restringe o número de linhas retornadas. A combinação ORDER BY ... DESC LIMIT n é o padrão para obter os n maiores valores. A pegadinha da banca está em distinguir entre as alternativas que apenas filtram (WHERE), as que apenas limitam (LIMIT), e a que ordena e limita. A alternativa E é a única que faz a ordenação decrescente antes de limitar, o que é essencial para obter os maiores valores. As demais alternativas ou não ordenam, ou ordenam de forma crescente, ou não limitam corretamente.

NÃO CAIA NESSA!

A banca explora a confusão entre ORDER BY valor (crescente, padrão) e ORDER BY valor DESC (decrescente). A alternativa D ordena de forma crescente e limita a 2, retornando os menores valores, enquanto a E retorna os maiores. Fique atento ao DESC — ele inverte completamente o resultado.

  1. 1SELECT id
  2. 2FROM logs
  3. 3ORDER BY valor DESC
  4. 4LIMIT 2
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

select id from logs where valor<200 filtra os registros com valor menor que 200, mas não ordena e não limita o resultado. Se a imagem mostra apenas 2 registros, essa alternativa retornaria todos os que atendem à condição, o que não corresponde ao resultado apresentado.

Alternativa B — ❌ Incorreta

select id from logs where valor>=200 filtra os registros com valor maior ou igual a 200, mas também não ordena e não limita. O resultado seria todos os registros que atendem à condição, não apenas 2.

Alternativa C — ❌ Incorreta

select id from logs limit 2 retorna as 2 primeiras linhas da tabela na ordem em que foram armazenadas, sem qualquer ordenação. O resultado da imagem, se mostra os maiores valores, não seria obtido por esse comando, pois ele não garante a ordem.

Alternativa D — ❌ Incorreta

select id from logs order by valor limit 2 ordena os registros por valor em ordem crescente (padrão) e limita a 2. Isso retornaria os 2 menores valores, não os maiores. A ausência do DESC é o erro crucial.

Alternativa E — ✅ Correta ⟵ GABARITO

select id from logs order by valor desc limit 2 ordena os registros por valor em ordem decrescente (DESC) e limita o resultado a 2 linhas. Isso retorna exatamente os 2 registros com os maiores valores, que é o que a imagem do enunciado apresenta. A combinação ORDER BY ... DESC + LIMIT é o padrão para obter os maiores registros. Gabarito: letra E

Link permanente: /questoes/qg174753