在SQL中为每3行生成一个序列号

时间:2015-01-01 04:17:51

标签: sql sql-server tsql

我需要为每个sequence number生成three rows一些范围。这可以在没有迭代的情况下完成。

示例:

sequence
--------
1
1
1
2
2
2
3
3
3

1 个答案:

答案 0 :(得分:17)

使用此Analytic function

SELECT ( ( Row_number()OVER(ORDER BY order_by_column ) - 1 ) / 3 ) + 1 seq_no,
              *
       FROM   tablename