Ранжирование строк с использованием функции SQL Server Rank без пропуска номера ранга

Я хочу ранжировать строки в таблице, не пропуская числа в ранге. Пожалуйста, смотрите пример ниже.

CREATE TABLE #test(
apples int NOT NULL,
) ON [PRIMARY]
GO

insert into #test( apples ) values ( 10 )
insert into #test( apples ) values ( 10 )
insert into #test( apples ) values ( 20 )
insert into #test( apples ) values ( 30 )

select *, RANK() over (order by apples) as theRank from #test

drop table #test
go

Результат:

apples   theRank
10       1
10       1
20       3
30       4

Как я могу получить ранг, чтобы не пропустить число 2, чтобы результат выглядел так

apples   theRank
10       1
10       1
20       2<--
30       3<--

Мне не нужно использовать функцию ранга, пока я получаю желаемый порядок .

Спасибо!

5
задан davomarti 5 April 2012 в 23:49
поделиться