+---------+----------+---------+------------+-------+---------+---------------+
| Product | Version | Country | Week | sales | returns | Running_sales |
+---------+----------+---------+------------+-------+---------+---------------+
| Pdt1 | pdt1ver1 | Aus | 2020M01W01 | 10 | 3 | 7 |
| pdt1 | pdt1ver1 | Fra | 2020M01W01 | 8 | 2 | 6 |
| pdt1 | pdt1ver1 | Fra | 2020M01W02 | 15 | 5 | 16 |
| pdt1 | pdt1ver2 | UK | 2020M01W01 | 20 | 5 | 15 |
| pdt1 | pdt1ver2 | UK | 2020M01W02 | 15 | 1 | 29 |
| pdt1 | pdt1ver2 | UK | 2020M01w03 | 9 | 0 | 38 |
| pdt2 | pdt2ver1 | Fra | 2020M01W01 | 5 | 1 | 4 |
| pdt2 | pdt2ver1 | Fra | 2020M01W02 | 3 | 0 | 7 |
+---------+----------+---------+------------+-------+---------+---------------+
У меня есть представление с данными и промежуточным итогом, показанным ранее. Это простой выбор, также с этим в операторе выбора (здесь уже есть помощь по этому вопросу):
Sum(sales-returns) over(
partition by Version, Country
Order by Week
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) Running_sales
Теперь мне нужен еще один столбец, который дал бы результаты предыдущей недели ( но, оставаясь в подгруппе, в которой он должен быть, это означает, что у меня не может быть ничего в строках 1, 2, 4 и 7, потому что предыдущей строки нет), например:
+---------+----------+---------+------------+-------+---------+---------------+------------------+
| Product | Version | Country | Week | sales | returns | Running_sales | previous_returns |
+---------+----------+---------+------------+-------+---------+---------------+------------------+
| Pdt1 | pdt1ver1 | Aus | 2020M01W01 | 10 | 3 | 7 | |
| pdt1 | pdt1ver1 | Fra | 2020M01W01 | 8 | 2 | 6 | |
| pdt1 | pdt1ver1 | Fra | 2020M01W02 | 15 | 5 | 16 | 2 |
| pdt1 | pdt1ver2 | UK | 2020M01W01 | 20 | 5 | 15 | |
| pdt1 | pdt1ver2 | UK | 2020M01W02 | 15 | 1 | 29 | 5 |
| pdt1 | pdt1ver2 | UK | 2020M01w03 | 9 | 0 | 38 | 1 |
| pdt2 | pdt2ver1 | Fra | 2020M01W01 | 5 | 1 | 4 | |
| pdt2 | pdt2ver1 | Fra | 2020M01W02 | 3 | 0 | 7 | 1 |
+---------+----------+---------+------------+-------+---------+---------------+------------------+
Я попытался добавить это к моему утверждению:
LAG(returns,1,0)
OVER(partition by Version, Country
Order by Week
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) previous_returns
Но это, очевидно, не так просто. Может окно? Нужно ли снова использовать раздел? Любые советы будут оценены по этому вопросу. Я использую Teradata.