答案 0 :(得分:2)
在这里。
在WITH子句中,创建测试数据。如果您不了解它的作用,请不要担心。它仅创建一个具有单列COL的视图输入,其中包含您提供的要测试的值。实际查询(解决方案)在WITH子句之后开始。要对其进行测试,请删除有关从INPUTS中进行选择的注释行之前的所有内容。
with
inputs(col) as (
select column_value
from sys.odcinumberlist(1,3,5,8,13,15,16,17,20,23,34,54,68)
)
-- select * from inputs; */
select row_num, min(col) as start_range, max(col) as end_range
from (
select col
, least( ceil(row_number() over (order by col)/3),
trunc(count(*) over () / 3)
) as row_num
from inputs
)
group by row_num
order by row_num
;
ROW_NUM START_RANGE END_RANGE
---------- ----------- ----------
1 1 5
2 8 15
3 16 20
4 23 68