Это ваш запрос:
select s.*
from student s
where s.StudentCode in (select top 1 s2.StudentCode
from student s2
where s2.marks = s.marks
);
Коррелированный подзапрос возвращает ровно одну строку. Следовательно, in
не требуется. Возвращаемая строка - это строка произвольная для студента с такими же отметками.
Если есть только один студент с данным значением marks
- например, 'f'
и 'g'
, то этот ученик совпадает.
В остальном, совпадающий ученик может быть или не быть единственной ссылкой во внешнем запросе. Таким образом, подзапрос отфильтрует их.
Если вы удалите top (1)
, то запрос вернет всех студентов.