i wants add column view keeps running total of value column. column must reset running total when either cat or cat b changes in rows. output data must this:-
cat cat b value running total ===== ===== ===== ============= 0 1 15 0 1 235 0 1 306 556 0 0 1 2 85 85 1 1 105 105 0 2 600 0 2 70 670 0 3 564 0 3 101 665 0 1 30 30
first, need column specify ordering running sum. assume called id
.
second, seem have logic not have values on rows. not clear logic is. proper "running sum" defined on rows.
then, can use lag()
, sum()
define groups , use "analytic" sum()
running sum:
select t.cata, t.catb, t.value, sum(value) on (partition grp order id) runningsum (select t.*, sum(case when cata = prev_cata , catb = prev_catb 0 else 1 end) on (order id) grp (select t.*, lag(cata) on (order id) prev_cata, lag(catb) on (order id) prev_catb t ) t ) t;
Comments
Post a Comment