如何在 oracle table 中生成 1 到 1000 万之间的 5% 唯一数字?

How to generate 5 percent unique numbers between 1 and 10 Million in oracle table?

我的任务是生成给定范围内的唯一数字(以百分比表示)。例如:我需要在 oracle table 中生成 1000 万个随机数,其中 5% 的值是唯一的。

这是我的设计:

  1. 1000 万的 5% 是 50 万。因此您可以为唯一编号保留 1-500,000 的范围。
  2. 当您生成随机数序列时,您会生成 500,001 - 10,000,000 范围内的随机数,并且每 20 次调用,从保留池中取出下一个数字