根据同一个表中列的值创建随机列

时间:2017-01-03 16:53:53

标签: sql oracle

我需要根据COLUMNA,COLUMNB和COLUMNC在分区上的同一个表中的列创建一个随机样本列。我需要使用NO_OF_SAMPLE列来确定我需要样本的记录数。

sample data

1 个答案:

答案 0 :(得分:0)

您有一个名为no_of_sample的列,它似乎表示您想要的X / Y组合的数量。

如果是这种情况,您可以使用row_number()dbms_random.value()执行所需操作:

select t.*
from (select t.*,
             max(no_of_sample) over (partition by columnA, columnB) as max_num,
             row_number() over (partition by columnA, columnB order by dbms_random.value()) as seqnum
      from t
     ) t
where seqnum <= max_num;