O MySQL é um dos sistemas de gerenciamento de banco de dado...
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
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