Я использую Oracle 12c, и у меня есть таблица с различными столбцами, включая столбец даты для ввода записи.Я хочу убедиться, что я получаю предпоследнюю дату для каждого элемента и комбинации местоположения в моей таблице.
Вот код SQL, который я сделал, чтобы попытаться достичь этого:
SELECT
DISTINCT
ITEM,
LOCATION,
ORDER_POINT,
SAFETY_STOCK,
NTH_VALUE(REPL_DATE, 2)
OVER (PARTITION BY ITEM,LOCATION ORDER BY REPL_DATE DESC
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS PREVIOUS_DATE
FROM
REPL_RESULTS
ВотПример результатов, когда я запускаю следующее:
SELECT
ITEM,
LOCATION,
ORDER_POINT,
SAFETY_STOCK,
REPL_DATE
FROM
REPL_RESULTS
ORDER BY ITEM, LOCATION
Результаты:
ITEM LOCATION ORDER_POINT SAFETY_STOCK REPL_DATE
0006296 100495 4.8416 0.1937 1/10/2019
0006296 100495 4.9021 0.2201 1/3/2019
0006296 100495 4.7848 0.15 11/22/2018
0006296 132142 3.1516 0.2481 1/9/2019
0006296 132142 2.091 0.23 1/16/2019
0006296 132142 2.903 0.1811 11/14/2018
Результат, который я ожидаю, таков:
ITEM LOCATION ORDER_POINT SAFETY_STOCK PREVIOUS_DATE
0006296 100495 4.9021 0.2201 1/3/2019
0006296 132142 3.1516 0.2481 1/9/2019
Заранее спасибо!