Применение сгруппированного рейтинга с использованием ROW_NUMBER - PullRequest
3 голосов
/ 12 марта 2012

Я ищу способы присвоить номера строк, как показано ниже для таблицы

Roll No    Name    Score 
 1           ABC    10
 1           ABC    10
 1           DEF     8
 2           ASC     9
 2           YHN     4
 3           IOP     5
 3           YHN     4

Я ищу способ присвоения номера броска как Rownumber ()

Roll No    Name    Score    Row_Number
 1           ABC    10        1
 1           ABC    10        2
 1           DEF     8        3
 2           ASC     9        1
 2           YHN     4        2
 3           IOP     5        1 
 3           YHN     4        2

Я пытаюсь обойти Row_number (), это не работает. ЛЮБОЙ вклад в этот мир будет великим:)

Спасибо !!!!

1 Ответ

3 голосов
/ 12 марта 2012
SELECT [Roll No], Name, Score, [ROW_NUMBER] = 
  ROW_NUMBER() OVER (PARTITION BY [Roll No] ORDER BY Score DESC)
FROM dbo.table
ORDER BY [Roll No], [ROW_NUMBER];

Если позже вы решите, что хотите обрабатывать связи по-другому, поиграйте с использованием RANK() или DENSE_RANK() вместо ROW_NUMBER() ...

...