SQL Ошибка НЕ ​​СУЩЕСТВУЕТ Возвращать всех людей, по крайней мере, в возрасте - PullRequest
1 голос
/ 24 апреля 2020

Мне нужно написать запрос, который возвращает всех людей, которые по крайней мере столь же стары, как и все. Мне дали одну таблицу:

Персоны (идентификатор, имя, адрес, возраст, цвет глаз, пол)

Это код, который я написал:

select name 
from Persons
where name NOT EXISTS (select P1.name from Persons P1, Persons P2 where P1.age < P2.age) 

Однако это дает синтаксическую ошибку, которая говорит о том, что правильный синтаксис не используется рядом с NOT EXISTS. Мне было интересно, может ли кто-нибудь объяснить, что именно не так и что я могу сделать, чтобы получить нужный мне результат.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Вы хотите лиц с максимальным возрастом:

select age
from persons
where age = (select max(age) from persons)

Если вы хотите использовать NOT EXISTS:

select p.name 
from Persons p
where NOT EXISTS (select 1 from Persons P1 where P1.age > P.age) 
0 голосов
/ 24 апреля 2020

А? Я бы подумал что-то вроде:

select p.name
from persons p
where p.age >= all (select p2.age from persons p2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...