Я пытаюсь получить промежуточный итог, запрашивая существующее представление, но сначала мне нужны точные группы. Я знаю, что могу сделать промежуточный итог, используя Sum (xx) over (Partition by xx Order by xx), но я знаю, как использовать это в простых случаях.
Данные при запуске представления выглядят так (с несколькими лишними столбцами, которые бесполезны), за исключением столбца Running_Stock, который я пытаюсь получить:
+---------+----------+---------+------------+-------+---------+---------------+
| Product | Version | Country | Week | sales | returns | Running_stock |
+---------+----------+---------+------------+-------+---------+---------------+
| 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 |
+---------+----------+---------+------------+-------+---------+---------------+
Для каждой версии продукта в данной стране я должен иметь возможность получить running_stock в любой момент времени. Запас рассчитывается по принципу «продажи - возврат».
Я наивно полагал, что могу сделать простое:
Select Product, Version, Country, Week, Sales, Returns,
Sum(sales-returns) over(partition by Version, Country Order by Week) Running_stock
from MyView
Но все, что я получаю, это для каждой «группы», то же самое запас в каждой строке, и это даже не правильная сумма (на самом деле это сумма * 2).