Генерация последовательностей для подмножеств таблицы - PullRequest
0 голосов
/ 29 января 2009

У меня есть таблица в SqlServer 9 с данными вида

Code    Number
J       0
J       5
J       8
Y       2
Y       8

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

Code    Number   Seq
J       0        1
J       5        2
J       8        3
Y       2        1
Y       8        2

Есть ли у кого-нибудь предложения о том, как лучше всего это сделать?

Ответы [ 2 ]

5 голосов
/ 29 января 2009

Посмотрите на функцию ROW_NUMBER () .

DECLARE @Number TABLE (
    Code        nvarchar(1)
,   Number      int
)


INSERT @Number VALUES ('J', 0)
INSERT @Number VALUES ('J', 5)
INSERT @Number VALUES ('J', 8)
INSERT @Number VALUES ('Y', 2)
INSERT @Number VALUES ('Y', 8)


SELECT * FROM @Number


SELECT  Code
,       Number
,       ROW_NUMBER() OVER(PARTITION BY Code ORDER BY Code) AS Seq
FROM    @Number
1 голос
/ 29 января 2009

поиск функций row_number () и RANK () в Books On Line

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