按照部门提随机取出30%的员工记录,标记字段置为0,剩下70%的员工,标记字段置为1,这样的SQL怎么写呢?
merge into emp s
using (select employee_id,
case
when round(rn / total, 2) <= 0.30 then
0
else
1
end flag2
from (select a.employee_id,
row_number() over(partition by department_id order by dbms_random.value) rn,
count(*) over(partition by department_id) total
from emp a)) b
on (s.employee_id = b.employee_id)
when matched then
update set s.flag = b.flag2;
浙公网安备 33010602011771号