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

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

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


Результат адекватный, но я никак не могу понять, как это работает. По логике вещей вложенный запрос возвращает 3 строки, а значит вернуть может не более трёх Значений. Но на выходе я получаю весь набор групп с разнообразием значений больше трёх.
Объясните, пожалуйста, математику запроса.
  • Вопрос задан
  • 2404 просмотра
Подписаться 1 Оценить 4 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию
    5 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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