Answer the question
In order to leave comments, you need to log in
How to get a certain number of rows before the required selection?
Есть отсортированная выборка данных. Из этой выборки необходимо получить данные, которые соответствуют определенному условию (WHERE) + 5 записей (или другое число), идущих перед выборкой. Т.е. перед первым значением, соответствующем условию. Эти 5 записей необязательно должны соответствовать условию.
Пример:
Необходимо получить значения больше или равно 9. +5 строк идущих перед первым совпадением. Ответ должен быть следующим: 1, 2, 3, 4, 7, 9, 11, 14, 17. Как это можно реализовать в postgresql или mysql?
Answer the question
In order to leave comments, you need to log in
sqlfiddle.com/#!17/12350/11/0
select val from
(
(select val from foo where val < 9 order by val desc limit 5)
union
(select val from foo where val >= 9 order by val asc)
) results
order by val asc
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question