Теперь у меня есть таблица в красном смещении, подобная этой:
Таблица Project_team
Employee_ID Employee_Name Start_date Ranking Is_leader Is_Parttime_Staff
Emp001 John 2014-04-01 1 No No
Emp002 Mary 2015-02-01 2 No Yes
Emp003 Terry 2015-02-15 3 Yes No
Emp004 Peter 2016-02-05 4 No No
Emp004 Morris 2016-05-01 5 No No
Изначально нет рейтинга для персонала.Что я делаю, так это использую функцию rank () следующим образом:
RANK() over (partition by Employee_ID,Employee_Name order by Start_date) as page_seq
Однако теперь я хочу манипулировать ранжированием на основе их статуса.Если работник является лидером, то он или она должны быть оценены в первую очередь.Если он или она работает неполный рабочий день, то рейтинг должен быть в конце.Таблица должна выглядеть примерно так:
Employee_ID Employee_Name Start_date Ranking Is_leader Is_Parttime_Staff
Emp003 Terry 2015-02-15 1 Yes No
Emp001 John 2014-04-01 2 No No
Emp004 Peter 2016-02-05 3 No No
Emp004 Morris 2016-05-01 4 No No
Emp002 Mary 2015-02-01 5 No Yes
Я пытался использовать функцию case для манипулирования ею, как
Case when Is_leader = true then Ranking = 1 else RANK() over (partition by Employee_ID,Employee_Name order by Start_date) End as page_seq.
Однако она не работает.
Какой процесс необходим для изменения рейтинга на основе других условий в других столбцах?
Большое спасибо!