表
Id SomeValue
1 Header1
4 Header9
7 Header5
8 Header2
9 Header5
12 Header4
13 Header9
14 Header7
预期输出
Id SomeValue Counter
1 Header1 1
4 Header9 2
7 Header5 3
8 Header2 4
9 Header5 5
12 Header4 1
13 Header9 2
14 Header7 3
当前输出:sqlfiddle。正如你可以在小提琴中看到的那样,计数器很好,但它不会在5个项目后重置计数。
答案 0 :(得分:3)
您可以使用模运算符(%
)重置计数。你只需要明确对待零:
SELECT Id, SomeValue, CASE counter WHEN 0 THEN 5 ELSE counter END
FROM (SELECT Id, SomeValue, ROW_NUMBER() OVER (ORDER BY Id) % 5 AS counter
FROM Table1) t
SQLFiddle附上您的数据。