У меня возникла проблема при умножении значения на другое последнее (но не на ту же дату) значение из другой таблицы с тем же ключом.
Для простоты понимания я объясню это ниже.
Предположим, у нас есть две таблицы variables
и coefficients
:
table coefficients
date key coeff
-----------------------------
2019-06-01 A 1
2019-06-02 B 2
2019-06-03 A 3
2019-06-05 B 4
2019-06-06 B 5
2019-06-08 A 6
table variables
date key var
---------------------------
2019-06-02 A 7
2019-06-05 B 8
2019-06-05 A 9
2019-06-06 B 10
2019-06-07 A 11
2019-06-08 B 12
2019-06-09 A 13
цель состоит в том, чтобы умножить значение в столбце variable
на ближайшее предыдущее значение coeff
.
В итоге мы получим результат:
---------------------------
date key val <-- var * coeff
---------------------------
2019-06-02 A 7 <-- 7 * 1
2019-06-05 B 16 <-- 8 * 2
2019-06-05 A 27 <-- 9 * 3
2019-06-06 B 40 <-- 10 * 4
2019-06-07 A 33 <-- 11 * 3
2019-06-08 B 60 <-- 12 * 5
2019-06-09 A 78 <-- 13 * 6
На variables
таблица, первая строка (ключ A
) была датирована 2019-06-02
, поэтому мы умножаем variables.var
на предыдущую последнюю (не ту же дату) coefficients.coeff
на A
, то есть 2019-06-01
's coeff
.То же самое со вторым рядом B
.
Я не знаю, с чего начать запрос, поскольку, если мы join
, он на каждом key
кажется не работает.