У меня есть такие данные:
contract nr startdate
1 12 01-01-2000
1 12 03-01-2000
1 22 07-01-2000
2 77 12-04-2001
2 78 17-04-2001
Моя простая цель - ранжировать каждое число в рамках конкретного контракта с учетом даты начала.Вывод должен выглядеть следующим образом:
contract nr startdate my_rank
1 12 01-01-2000 1
1 12 03-01-2000 1
1 22 07-01-2000 2
2 77 12-04-2001 1
2 78 17-04-2001 2
Я перепробовал почти все возможные комбинации, но не смог разобраться.
select dense_rank() over
(partition by contract order by nr) as my_rank,* from my_data
Выше достаточно близко, проблема в том, чтов некоторых случаях 1 присваивается самому последнему контракту, в других случаях он присваивается наименее последнему (?).Любой намек?