У меня есть следующий набор данных:
DATA_FIM CENTRO C M ESTOQUE
2018-02-01 HD01 CD 70 539.000
2018-03-01 HD01 CD 70 511.000
2018-04-01 HD01 CD 70 468.000
2018-05-01 HD01 CD 70 447.000
2018-06-01 HD01 CD 70 382.000
2018-07-01 HD01 CD 70 348.000
2018-08-01 HD01 CD 70 285.000
2018-09-01 HD01 CD 70 245.000
2018-10-01 HD01 CD 70 221.000
2018-11-01 HD01 CD 70 207.000
2018-12-01 HD01 CD 70 122.000
2018-12-21 HD01 CD 70 101.000
2018-02-01 HD01 CD 71 164.000
2018-03-01 HD01 CD 71 147.000
2018-04-01 HD01 CD 71 124.000
2018-05-01 HD01 CD 71 107.000
2018-06-01 HD01 CD 71 78.000
1- Учитывая 2-й, 3-й, 4-й столбцы как группу, я хочу вычесть значения 5-го столбца из предыдущей строки того же столбца.
Чтобы создать новую строку.
[! [Data] [2]] [2]
Это очень похоже на эту проблему: [Issue: 13196190] [3]Однако в моем случае у меня есть несколько индексов, и я не уверен, как решить.
ОБНОВЛЕНО
Я использую предложенные коды
select
ZBI_FAT_PRODUCT.DATA_FIM,
ZBI_DIM_EMPRESA.CENTRO,
ZBI_DIM_EMPRESA.CANAL,
ZBI_DIM_PRODUCT.MATERIAL,
ZBI_DIM_PRODUCT.TITULO,
ZBI_FAT_PRODUCT.ESTOQUE_VENDA,
LAG(ZBI_FAT_PRODUCT.ESTOQUE_VENDA, 1, ZBI_FAT_PRODUCT.ESTOQUE_VENDA) OVER (PARTITION BY ZBI_DIM_EMPRESA.CENTRO, ZBI_DIM_PRODUCT.MATERIAL, ZBI_DIM_PRODUCT.TITULO ORDER BY ZBI_FAT_PRODUCT.DATA_FIM) - ZBI_FAT_PRODUCT.ESTOQUE_VENDA AS NEW
FROM ZBI_DIM_EMPRESA INNER JOIN (ZBI_DIM_PRODUCT INNER JOIN ZBI_FAT_PRODUCT ON ZBI_DIM_PRODUCT.BK = ZBI_FAT_PRODUCT.BK_MATERIAL) ON ZBI_DIM_EMPRESA.BK = ZBI_FAT_PRODUCT.BK_EMPRESA;