O MySQL é um dos sistemas de gerenciamento de banco de dado...

Próximas questões
Com base no mesmo assunto
Q879925 Banco de Dados

Texto 5 para responder a questão.


Por muitas vezes, é necessário representar dados em tabelas, que podem ser traduzidas por relações dentro de um banco de dados, como no exemplo a seguir.


O MySQL é um dos sistemas de gerenciamento de banco de dados (SGBD) mais utilizados quando se trata de bancos de dados relacionais. 

Considerando o exposto e apresentada as informações da tabela, assinale a alternativa que indica o resultado da query a seguir: 


SELECT Nome,Idade FROM PESSOA WHERE Idade = (SELECT DISTINCT(Idade) FROM PESSOA as p1 WHERE (SELECT COUNT(DISTINCT(Idade))=2 FROM PESSOA as p2 WHERE p1.Idade <= p2.Idade)) ORDER BY Nome

Alternativas

Comentários

Veja os comentários dos nossos alunos

(SELECT DISTINCT(Idade) FROM PESSOA as p1 WHERE

(SELECT COUNT(DISTINCT(Idade))=2 FROM PESSOA as p2 WHERE p1.Idade <= p2.Idade)) 

 

Retorna o valor igual 43

Então alternativa correta é letra A.

Essa consulta está procurando na tabela PESSOA, alguém que possua exatamente 2 pessoas com a idade igual ou maior que a dela.

Vamos por tarte:

A consulta mais externa vai retornar nome e idade de alguma pessoa que possua a idade = X.

O conjunto X é o conjunto de idades não repetidas da mesma tabela PESSOA. Isto é o que a segundo select está fazendo.

Porém, ele quer que o conjunto X obedeça a seguinte condição: A idades retornadas em X devem ter pelo menos duas pessoas com a idade igual ou mais velhas que ele mesmo. Quem faz isso é o select mais interno.

 

Olhando a tabela vemos que só existe uma pessoa com a idade igual a de BRUNO (Ele mesmo)

No caso de Alice, Existem 3 pessoas (ela mesmo, bruno e caio).

No caso do Caio só existe ele mesmo e o bruno. Portanto, este é o gabarito. (Alternativa A)

 

http://sqlfiddle.com/#!9/244b5e2/16

Clique para visualizar este comentário

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