2

5 つの可能な値のいずれかを、レコードごとにランダムに約 1500 レコードに一致させる必要があるクエリを作成しました。値をランダムに割り当てることができましたが、割り当てられた値はすべてのレコードで同じです。PL/SQLを使わずにこれを行う方法はありますか? 考えを教えてください。クエリは次のとおりです (データベースは Oracle 11g です)。

select
ioi.ioi_mstc
,ioi.ioi_seq2
,max(decode(rn, (select round(dbms_random.value(1,5)) num from intuit.srs_ioi where rownum < 2), uddc))
from
intuit.srs_ioi ioi
,intuit.srs_cap cap
    ,(select
    sub.udd_code uddc
    ,row_number() over(partition by sub.udd_udvc order by rownum) rn
    from
      (select * from
      intuit.men_udd udd
      where
      udd.udd_udvc = 'PA_REJ_REAS'
      order by dbms_random.value) sub
    where rownum <= 5) rejReas
where
ioi.ioi_stuc = cap.cap_stuc
and ioi.ioi_iodc = 'PAPERLESS'
and cap.cap_ayrc = '2013/4'
and cap.cap_idrc like '%R%'
group by ioi.ioi_mstc
,ioi.ioi_seq2
4

1 に答える 1