我需要将SQL表记录划分为100个相等的部分,并按ID获取其范围。 ID正在增加,但缺少一些。所以每个部分应该有100条记录。
像
0 part :from 5 to 120
1 part :from 121 280
...
是否可以在纯SQL中实现?对我来说看起来很复杂!
答案 0 :(得分:0)
使用row_number()
:
select t.*,
floor( (seqnum - 1) / 100) as part_num
from (select t.*,
row_number() over (order by id) as seqnum
from t
) t;