Oracle Analytic functions - resetting a windowing clause

后端 未结 3 516
青春惊慌失措
青春惊慌失措 2021-01-01 02:48

I have the following data set.

create table t1 (
  dept number,
  date1 date
);

Table created.

insert into t1 values (100, \'01-jan-2013\');
insert into t1         


        
3条回答
  •  死守一世寂寞
    2021-01-01 03:01

    This could have been a case for model clause, but unfortunately it dramatically underperforms on significant amount of rows compared to Gordon's query.

    select dept, date1, rank from t1
    model 
      dimension by ( row_number() over(order by date1) as rn )
      measures( 1 as rank, dept, date1 ) 
      rules ( 
        rank[1] = 1,
        rank[rn > 1] = 
        case dept[cv()] 
          when dept[cv()-1] then rank[cv()-1] + 1 
          else 1
         end
      )
    

    http://www.sqlfiddle.com/#!4/fc339/132

提交回复
热议问题