Как я могу ранжировать последовательные записи, используя оракул SQL? - PullRequest
0 голосов
/ 17 ноября 2018

Например, для приведенного ниже набора данных:

SUBJECT DATE   MARKS
======= =====  =====
     A  10/01  10
     B  10/02  20
     B  10/03  30
     B  10/04  30
     C  10/05  10 
     C  10/06  20
     C  10/07  20
     C  10/08  20

Мне нужен еще один столбец, Level, как показано ниже.

SUBJECT DATE   MARKS level
======= =====  ===== =====
     A  10/01  10    1
     B  10/02  20    1
     B  10/03  30    1
     B  10/04  30    2
     C  10/05  10    1
     C  10/06  20    1
     C  10/07  20    2
     C  10/08  20    3
     C  10/09  20    4
     C  10/10  30    1

Другими словами, которые всегда последовательныкомбинация повторяется, мы должны увеличить счетчик для этого столбца.Можно ли этого достичь?

1 Ответ

0 голосов
/ 17 ноября 2018

Вы ищете row_number():

select t.*,
       row_number() over (partition by subject, marks order by date) as level
from t
order by subject, date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...