Как включить номер строки, но показать галстук? - PullRequest
4 голосов
/ 05 марта 2012

Скажите, у меня есть запрос ниже:

WITH TEMP AS
  (
     select 1 as id, 4 as value
     UNION
     SELECT 2, 53
     UNION
     SELECT 3, 1
     UNION
     SElECT 4, 474
     UNION
     SELECT 5, 53
  )

  SELECT *,
  ROW_NUMBER() OVER (ORDER BY value)
  FROM TEMP

Возвращает следующее:

3   1   1
1   4   2
2   53  3
5   53  4
4   474 5

Мне бы хотелось, чтобы две строки с 53 имели одинаковый номер строки (3), а последняя строка должна иметь номер строки 5. Я предполагаю, что этого нельзя сделать с помощью ROW_NUMBER. Может ли кто-нибудь указать мне правильное направление, чтобы начать это?

1 Ответ

6 голосов
/ 05 марта 2012

Вместо использования ROW_NUMBER вы хотите использовать RANK.

  SELECT *,   
      RANK() OVER (ORDER BY value)   
  FROM TEMP

RANK (T-SQL) Ссылка MSDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...