添加有限的行号SQL

Ham*_*teu 1 sql sql-server sql-server-2008

我有下表:

ID   GroupID   Date         Value
1    A         2014-06-01   20
2    A         2014-06-02   21
3    A         2014-06-03   22
4    B         2014-06-01   50
5    B         2014-06-02   76
6    A         2014-06-04   25
7    C         2014-06-01   70
8    A         2014-06-05   29
Run Code Online (Sandbox Code Playgroud)

我希望在SQL VIEW中得到以下结果:

ID   GroupID   Date         Value     RowNumber
1    A         2014-06-01   20        1
2    A         2014-06-02   21        2
3    A         2014-06-03   22        3
4    B         2014-06-01   50        1
5    B         2014-06-02   76        2
6    A         2014-06-04   25        4
7    C         2014-06-01   70        1
8    A         2014-06-05   29        5
Run Code Online (Sandbox Code Playgroud)

但是,我想将RowNumber字段限制为24.如果数字达到24,那么它将再次从1开始.

有谁知道如何做到这一点?
谢谢.

Meh*_*nas 5

你只需将RowNumber Column Value设置为RowNumber%24 + 1,然后当行号达到24然后从1开始

SELECT (ROW_NUMBER() OVER 
                     (PARTITION BY GroupID  ORDER BY ID)
                      -1)%24+1 as RowNumber,
* FROM Table
Run Code Online (Sandbox Code Playgroud)

因为行号从1 i开始减去行号-1从0开始