Задать вопрос
VMesser
@VMesser

Выбрать N первых записей для каждой группы, как это работает?

Столкнулся с классической задачей:
В таблице одно поле - группы, другое - значения. Необходимо выбрать, допустим, по три значения для каждой группы. Реализовать нужно в Access.
В гугле ходит такой рабочий запрос:
SELECT Группа, Значение
FROM Таблица
WHERE Значение IN
   (SELECT TOP 3 Значение
    FROM Таблица as Temp
    WHERE Temp.Группа= Таблица.Группа
    ORDER By Значение DESC)


Результат адекватный, но я никак не могу понять, как это работает. По логике вещей вложенный запрос возвращает 3 строки, а значит вернуть может не более трёх Значений. Но на выходе я получаю весь набор групп с разнообразием значений больше трёх.
Объясните, пожалуйста, математику запроса.
  • Вопрос задан
  • 2411 просмотров
Подписаться 1 Оценить 4 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    SQL для разработки
    4 месяца
    Далее
  • Академия Eduson
    SQL-разработчик: тариф Базовый
    3 месяца
    Далее
  • Stepik
    SQL с нуля до PRO
    2 недели
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы