我需要根据COLUMNA,COLUMNB和COLUMNC在分区上的同一个表中的列创建一个随机样本列。我需要使用NO_OF_SAMPLE列来确定我需要样本的记录数。
答案 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;