Suponha que se deseja realizar a seguinte busca no banco de...

Próximas questões
Com base no mesmo assunto
Q1088356 Banco de Dados
Suponha que se deseja realizar a seguinte busca no banco de dados:
Encontrar os nomes de todas as agências que não sejam da cidade de Belo Horizonte e que tenham ativos maiores do que pelo menos uma agência de Belo Horizonte.
Considerando-se que existem várias agências na cidade de Belo Horizonte, é correto afirmar que a consulta SQL que realiza essa busca é
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A

Vamos entender o que está sendo solicitado na questão e por que a alternativa A é a correta. A questão pede para encontrar os nomes das agências que não estão localizadas na cidade de Belo Horizonte e que possuem um valor de ativos maior do que ao menos uma agência localizada em Belo Horizonte. Para isso, precisamos utilizar o SQL, que é uma linguagem de consulta estruturada, para buscar os dados em um banco de dados.

O conhecimento necessário para resolver essa questão inclui entender o conceito de subconsultas (ou subqueries), a cláusula WHERE para filtrar registros, o operador <> para comparação de desigualdade, e a função DISTINCT para garantir que os resultados sejam únicos, sem duplicatas.

A consulta correta deve fazer um auto-relacionamento da tabela agência, comparando os ativos de agências não localizadas em Belo Horizonte com os ativos de agências em Belo Horizonte. Deve-se garantir que pelo menos uma agência de Belo Horizonte tenha ativos menores do que a agência que não está em Belo Horizonte.

Justificativa para a alternativa A:

A alternativa A é correta porque utiliza a estratégia de auto-relacionamento, comparando registros da mesma tabela agência sob dois alias diferentes, T e S. O trecho T.ativo > S.ativo assegura que estamos selecionando agências (alias T) com ativos maiores do que as de Belo Horizonte (alias S). Além disso, os filtros S.cidade_agencia = 'Belo Horizonte' e T.cidade_agencia <> 'Belo Horizonte' garantem que estamos comparando as agências de outras cidades com as de Belo Horizonte, conforme solicitado pelo enunciado.

O uso do DISTINCT garante que cada nome de agência seja listado apenas uma vez, mesmo que se qualifique em comparação com múltiplas agências de Belo Horizonte, evitando duplicidades no resultado final.

Entender a lógica por trás dessa consulta é essencial. Ela cria um cruzamento onde cada agência é comparada com todas as outras, mas devido aos filtros aplicados, só serão retornadas aquelas que atendem aos critérios especificados: não estar em Belo Horizonte e ter ativos maiores que pelo menos uma agência que esteja em Belo Horizonte.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

GABARITO A

No caso usando o alias T é a agência que não seja de BH e que tenha ativos maiores que uma agência de BH.

Logo T.ativo > S.ativo (elimina a B)

S.cidade = BH

T.cidade <> BH (diferente de bh)

D. a virgula antes do where torna errada, não olhei mais nada depois

Vale olhar se os acentos são suportados pelo SQL

O erro da C é que o SELECT interno deve retornar vários elementos. Eu não posso fazer "x > (1, 2, 3, ...)"

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo