K
K
koliane2018-04-02 17:37:07
MySQL
koliane, 2018-04-02 17:37:07

How to get a certain number of rows before the required selection?

Есть отсортированная выборка данных. Из этой выборки необходимо получить данные, которые соответствуют определенному условию (WHERE) + 5 записей (или другое число), идущих перед выборкой. Т.е. перед первым значением, соответствующем условию. Эти 5 записей необязательно должны соответствовать условию.
Пример: 649df457d2.jpg
Необходимо получить значения больше или равно 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

1 answer(s)
Станислав Макаров, 2018-04-02
@koliane

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 question

Ask a Question

731 491 924 answers to any question