У меня есть образец таблицы ниже. Я пытаюсь создать счетчик, который сбрасывается, когда Flag
равен 0 без рекурсивной таблицы.
Animal Order Flag
Cat 1 0
Cat 2 0
Cat 3 1
cat 4 1
cat 5 0
cat 6 1
cat 7 1
Dog 1 0
Dog 2 1
Dog 3 1
Dog 4 1
Dog 5 0
Dog 6 0
Dog 7 1
Я пробовал различные row_number
, rank
, dense_rank
, но ничего не получилосья близко. Самое близкое, что я получил, - это использование метода отставания, приведенного ниже, но он может рассчитывать только до 2 и должен иметь возможность считать до бесконечности.
Lag: MAX(flag )
OVER(PARTITION BY 1 ORDER BY Order
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING)
Желаемый выход
Animal Order Flag Count
Cat 1 0 0
Cat 2 0 0
Cat 3 1 1
cat 4 1 2
cat 5 0 0
cat 6 1 1
cat 7 1 2
Dog 1 0 0
Dog 2 1 1
Dog 3 1 2
Dog 4 1 3
Dog 5 0 0
Dog 6 0 0
Dog 7 1 1