Я пытаюсь выполнить запрос, который возвращает уровень запаса в начале каждой календарной недели.Более конкретно, я хочу найти последнее событие перед началом каждой календарной недели.
SELECT *
FROM (
SELECT *, rank() OVER (PARTITION BY sku, warehouse
ORDER BY timestamp DESC) AS rnk
FROM inventory_value
WHERE timestamp < CAST('2018-11-01' as DATE)
) WHERE rnk = 1
Запрос должен быть примерно таким, за исключением того, что я хочу, чтобы он был для каждой недели после даты начала.
Пример входных данных выглядит следующим образом
sku warehouse timestamp SOH
1 12345678 W31 2018-09-25 14:00:00.000 2322
2 12345678 W31 2018-11-16 00:00:00.000 0
И в начале каждой недели я хочу возвращать строку, непосредственно предшествующую ей.
Например, для каждой недели до16 ноября я хочу, чтобы он возвратил событие в сентябре, но все недели после 16 ноября я хочу получить событие от 16-го.
Я с радостью сообщу дату начала, но для моего приложенияЯ не могу изменить запрос еженедельно.
Заранее спасибо