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

Generate a sequence number for every 3 rows in SQL

我需要为每个具有一定范围的 three rows 生成一个 sequence number。这可以不用迭代来完成吗?

示例:

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

使用这个Analytic function

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