Nếu bạn chỉ muốn gán giá trị 1-5 cho các nhóm có kích thước cơ bản bằng nhau, thì hãy sử dụng ntile()
:
select t.*, ntile(5) over (order by NULL) as num
from (select t.*
from t
where rownum <= 100000
) t;
Nếu bạn muốn chèn vào 5 bảng khác nhau, hãy sử dụng insert all
:
insert all
when num = 1 then into t1
when num = 2 then into t2
when num = 3 then into t3
when num = 4 then into t4
when num = 5 then into t5
select t.*, ntile(5) over (order by NULL) as num
from (select t.*
from t
where rownum <= 100000
) t;