Как поставить ранг в sql

select * from (select sum(dpt_no) as numbers from department group by dpt_name) order by numbers desc

Результат:

  NUMBERS
----------
       420 
       209 
       106 
       105 
       103 
       102 

Как присвоить ранги этому результату?


person ram12393    schedule 07.12.2013    source источник
comment
Вы ищете что-то вроде этой ссылка   -  person mic4ael    schedule 07.12.2013
comment
я уже это видел, но как присвоить ранг в моем случае?   -  person ram12393    schedule 07.12.2013


Ответы (1)


Пожалуйста попробуйте:

select 
    numbers,
    rank() over(order by numbers desc) Rank
from (
    select sum(dpt_no) as numbers 
    from department group by dpt_name
) 
order by numbers desc

образец:

select 
  Col,
  rank() over(order by Col desc) Rank
From YourTable

Демонстрация скрипта SQL

person TechDo    schedule 07.12.2013
comment
Вы можете сказать одну вещь. В чем основная разница между RANK и DENSE_RANK? - person ram12393; 07.12.2013
comment
Пожалуйста, проверьте ссылки stackoverflow.com/questions/11183572/ oracle-base.com/articles/misc/ - person TechDo; 07.12.2013
comment
RANK допускает пробелы, если какие-либо строки совпадают по значению, например. 1,2,2,4,5; DENSE_RANK не содержит пробелов, например. 1,2,2,3,4; ROW_NUMBER, с другой стороны, разрешает связи недетерминировано, например. 1,2,3,4,5 - person Jeffrey Kemp; 13.12.2013