У меня есть таблица, которая выглядит как
ID SEQ LABEL COUNT
1 1 0 3
1 2 0 2
1 3 0 6
1 4 1 2
1 5 0 3
1 6 0 5
2 1 0 2
2 2 1 1
2 3 0 3
Я хотел бы создать столбец с именем running_count. Он вычисляет совокупную сумму количества столбцов до тех пор, пока метка не станет равной 1, а затем сбрасывает и снова запускает совокупную сумму.
Ожидаемый результат:
ID SEQ LABEL1 COUNT1 RUNNING_COUNT
1 1 0 3 3
1 2 0 2 5
1 3 0 6 14
1 4 1 2 16
1 5 0 3 3
1 6 0 5 8
2 1 0 2 2
2 2 1 1 3
2 3 0 3 3
Я пробовал следующий запрос
SELECT A.*, SUM(COUNT1) over (partition by ID,LABEL1 order by SEQ) as RUNNING_COUNT FROM TABLE_1 A
Проблема здесь в том, что совокупная сумма останавливается в предыдущей строке (Seq) для Label = 1. Мне нужно получить промежуточную сумму до Label = 1 для каждого ID на основе Seq.
The Wrong Вывод получаю
ID SEQ LABEL1 COUNT1 RUNNING_COUNT
1 1 0 3 3
1 2 0 2 5
1 3 0 6 14
1 4 1 2 2
1 5 0 3 3
1 6 0 5 8
2 1 0 2 2
2 2 1 1 1
2 3 0 3 3