= 1 или по несколько результатов на категорию в зависимости от N, если N > 1:
SELECT T1.*
FROM notes as T1
WHERE (
SELECT COUNT(*)
FROM notes as T2
WHERE T2.category_id = T1.category_id
AND T2.created_at > T1.created_at
) < N
Может кто объяснить почему и как оно вообще работает?
для каждого ряда выполняется подзапрос. Разберись что возвращает подзапрос)
попробуй просто заджойнить этот подзапрос, что бы посмотреть какие значения для каждой комбинации рядов возвращаются. и думаю сможешь понять логику
ну у тебя для N = 1 будет последний (по дате) результат из каждой категории, для N = 2 — два последних, и тд
Обсуждают сегодня