Я хочу присоединиться к набору записей, в котором конкретное значение в столбце соединяющейся таблицы находится между значениями в строках базовых таблиц. Данная таблица b остается присоединенной к a:
WITH a (v) AS (
VALUES (1),(3),(5),(7),(9)
), b (v) AS (
VALUES (1),(2),(3),(4),(5)
) SELECT a.v, b.v FROM a
LEFT JOIN b ON b.v >= a.v /* AND ??? */
целевой результат (c), который я надеюсь достичь:
a join b = c
v v v
- - ---
1 1 1,1
3 2 1,2
5 3 3,3
7 4 3,4
9 5 5,5
7,
9
Я подозреваю, что подзапрос или оконная функция могут сделать уловка, но решение не очевидно для меня и надеюсь, что может быть несколько хороших предложений :)