У меня есть следующий набор данных.Oracle Аналитические функции - сброс окошка оговорки
create table t1 (
dept number,
date1 date
);
Table created.
insert into t1 values (100, '01-jan-2013');
insert into t1 values (100, '02-jan-2013');
insert into t1 values (200, '03-jan-2013');
insert into t1 values (100, '04-jan-2013');
commit;
Основная цель - создать столбец рангов, который сбрасывается каждый раз, когда изменяется отдел. Самый близкий столбец, который я могу использовать для предложения «partition by», - это dept, но это не даст мне желаемого результата.
SQL> select * from t1;
DEPT DATE1
---------- ---------
100 01-JAN-13
100 02-JAN-13
200 03-JAN-13
100 04-JAN-13
select dept,
date1,
rank() Over (partition by dept order by date1) rnk
from t1
order by date1;
DEPT DATE1 RNK
---------- --------- ----------
100 01-JAN-13 1
100 02-JAN-13 2
200 03-JAN-13 1
100 04-JAN-13 3
Желаемый результат следующий. Последний rnk = 1 состоит в том, что запись Jan-04 является первой записью после изменения.
DEPT DATE1 RNK
---------- --------- ----------
100 01-JAN-13 1
100 02-JAN-13 2
200 03-JAN-13 1
100 04-JAN-13 1 <<<----------
Любые указатели?
+1. , , Вы включаете код для фактического тестирования того, что вы хотите знать. И примеры результатов. Могу ли я увеличить вдвое? –
Спасибо Гордон. Это моя обычная жалоба с другими вопросами, я лучше следую тому, что я проповедую :) –