postgresql – 通过循环在[0,1001]中生成随机数的非重复随机数
发布时间:2020-12-13 16:16:37 所属栏目:百科 来源:网络整理
导读:我需要在plpgsql中生成一个随机数的非重复随机数.非重复数字应落在[1,1001]范围内.但是,代码生成的数字超过1001. directed2number := trunc(Random()*7+1);counter := directed2numberwhile counter 0loopto_point := trunc((random() * 1/directed2number -
我需要在plpgsql中生成一个随机数的非重复随机数.非重复数字应落在[1,1001]范围内.但是,代码生成的数字超过1001.
directed2number := trunc(Random()*7+1); counter := directed2number while counter > 0 loop to_point := trunc((random() * 1/directed2number - counter/directed2number + 1) * 1001 +1); ... ... counter := counter - 1; end loop;
如果我明白的话
>您需要一个随机数(1到8)的随机数. CREATE OR REPLACE FUNCTION x.unique_rand_1001() RETURNS SETOF integer AS $body$ DECLARE nrnr int := trunc(random()*7+1); -- number of numbers BEGIN RETURN QUERY SELECT (1000 * random())::integer + 1 FROM generate_series(1,nrnr*2) GROUP BY 1 LIMIT nrnr; END; $body$LANGUAGE plpgsql VOLATILE; 呼叫: SELECT x.unique_rand_1001(); GROUP BY使数字独一无二.我生成的数字是所需数量的两倍,以便在删除重复项时提供足够的数字.根据任务的给定维度(最多8个1001个数字),天文数据不太可能没有足够的数字.最坏情况:返回查看器编号. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- About SWFObject generated by Flash Professional, and th
- ruby-on-rails – 使用API??将压缩数据上传到Google BigQue
- swift – SequenceOf和LazySequence – 有什么区别和用途?
- mongodb nosql 大数据提高查询速度-索引
- c# – 将dataGridView中的所选行检索为对象
- c – 奇怪的错误:当没有真正创建指针时使用已删除的函数’
- C#Linq找到重复的行
- 关于Ajax控件中的AutoCompleteExtender控件的一个简单应用
- React Native之Navigator
- ios – 无效更新:部分中的行数无效