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