Я пробовал некоторые упражнения из видео db-class.org. Была одна проблема с поиском
'минимального gpa всех студентов, которые подали документы в колледжи и выбрали CS в качестве основного'
При использовании агрегации это:
select min(gpa) from student,apply where student.sid=apply.sid and major='CS';
результат будет
min
-----
3.4
(1 row)
sid, gpa - это таблица Student, тогда как в таблице Apply есть поля sid, major
Как я могу переписать это без использования агрегации?
Я попытался
select gpa from student,apply where major='CS' and gpa < all(select gpa from student,apply where student.sid=apply.sid and major='CS');
Но это дает мне 14 строк вместо правильного результата gpa
-----
2.9
2.9
2.9
2.9
2.9
2.9
2.9
2.9
2.9
2.9
2.9
2.9
2.9
2.9
(14 rows)
Почему это происходит? Может кто-нибудь помочь мне?