2015-07-24 5 views
0

Я хочу получить третий столбец, как указано ниже, из sql. Я использовал DENSE_RANK(), но это не служит цели, как я хочу, ряд выглядит следующим образом:SQL Server: Показать похожие строки с номером в другом столбце

A 90 1 
B 85 2 
C 85 2 
D 80 4 
E 75 5 
F 75 5 
G 75 5 
H 70 8 
+6

Используйте ' RANK' вместо 'DENSE_RANK' –

+0

, который работает ... Большое спасибо –

ответ

0

Вы можете добиться этого с рангом:

select t.*, 
    RANK() OVER (ORDER BY t.value desc) AS rank_id 
from(
    select   'A' as id, 90 as value  
    union all select 'B' as id, 85 as value  
    union all select 'C' as id, 85 as value  
    union all select 'D' as id, 80 as value  
    union all select 'E' as id, 75 as value  
    union all select 'F' as id, 75 as value  
    union all select 'G' as id, 75 as value  
    union all select 'H' as id, 70 as value 
) as t 

результаты:

id value rank_id 
A 90  1 
C 85  2 
B 85  2 
D 80  4 
F 75  5 
G 75  5 
E 75  5 
H 70  8  
Смежные вопросы