VMesser
@VMesser
gitter.im/VBA-developers

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

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


Результат адекватный, но я никак не могу понять, как это работает. По логике вещей вложенный запрос возвращает 3 строки, а значит вернуть может не более трёх Значений. Но на выходе я получаю весь набор групп с разнообразием значений больше трёх.
Объясните, пожалуйста, математику запроса.
  • Вопрос задан
  • 2292 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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