计算min-max两个整数之间的随机整数

/*------------------------------效率最低
功能:计算min-max两个整数之间的随机整数
作者:
日期:20180831
区别:在查询中嵌入count(*)计算记录总条数,效率最低
*/
--SET STATISTICS IO ON;
SET STATISTICS TIME ON;
GO
DECLARE @min INT= 1;
DECLARE @max INT= 100;
DECLARE @icount INT= 0;
DECLARE @t TABLE
    (
     i INT IDENTITY
           PRIMARY KEY
    ,n INT
    );
INSERT  INTO @t
        (n
        )
        SELECT  FLOOR(RAND(CHECKSUM(NEWID())) * ( @max - @min + 1 )) + @min--计算min-max之间的随机整数
        FROM    master..spt_values AS a
                CROSS JOIN master..spt_values AS b;

SELECT  n
       ,COUNT(n) AS 数量
       ,( SELECT    COUNT(*)
          FROM      @t
        ) AS 总数
       ,COUNT(n) * 100.0 / ( SELECT COUNT(*)
                             FROM   @t
                           ) AS [占比例%]
FROM    @t
GROUP BY n;

/*------------------------------效率居中
功能:计算min-max两个整数之间的随机整数
作者:
日期:20180831
区别:提前计算记录总条数赋值到变量,效率居中
*/
--SET STATISTICS IO ON;
SET STATISTICS TIME ON;
GO
DECLARE @min INT= 1;
DECLARE @max INT= 100;
DECLARE @icount INT= 0;
DECLARE @t TABLE
    (
     i INT IDENTITY
           PRIMARY KEY
    ,n INT
    );
INSERT  INTO @t
        ( n
        )
        SELECT  FLOOR(RAND(CHECKSUM(NEWID())) * ( @max - @min + 1 )) + @min--计算min-max之间的随机整数
        FROM    master..spt_values AS a
                CROSS JOIN master..spt_values AS b;
SELECT  @icount = COUNT(*)
FROM    @t;

SELECT  n
       ,COUNT(n) AS 数量
       ,@icount AS 总数
       ,COUNT(n) * 100.0 / @icount AS [占比例%]
FROM    @t
GROUP BY n;
/*------------------------------效率最高
功能:计算min-max两个整数之间的随机整数
作者:
日期:20180831
区别:根据@@rowcount计算记录总条数,效率最高
*/
--SET STATISTICS IO ON;
SET STATISTICS TIME ON;
GO
DECLARE @min INT= 1;
DECLARE @max INT= 100;
DECLARE @icount INT= 0;
DECLARE @t TABLE
    (
     i INT IDENTITY
           PRIMARY KEY
    ,n INT
    );
INSERT  INTO @t
        (n
        )
        SELECT  FLOOR(RAND(CHECKSUM(NEWID())) * ( @max - @min + 1 )) + @min--计算min-max之间的随机整数
        FROM    master..spt_values AS a
                CROSS JOIN master..spt_values AS b;
SET @icount = @@ROWCOUNT;
--SET @[email protected]@IDENTITY
SELECT  n
       ,COUNT(n) AS 数量
       ,@icount AS 总数
       ,COUNT(n) * 100.0 / @icount AS [占比例%]
FROM    @t
GROUP BY n;

  

原文地址:https://www.cnblogs.com/bgbird/p/9638564.html

时间: 2024-11-08 02:39:09

计算min-max两个整数之间的随机整数的相关文章

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号.然后再把这些数从小到大排序,按照排好的顺序去找同学做调查.请你协助明明完成"去重"与"排序"的工作. Input Param n               输入随机数的个数 inputArray      n个随机整数组成的数组 Return Value

获取m,n之间的随机整数

获取m,n之间的随机整数 代码去下: 原文地址:https://www.cnblogs.com/sherryStudy/p/get_round.html

使用Random随机生成[min,max]之间的整数:

如下代码是生成范围在min到max之间的随机整数(包括min和max):   import java.util.Random; /** * 生成[min,max]的随机整数 * @author meikai * @version 2017年11月4日 上午11:04:52 */ public class RandomTest { public static void main(String args[]) { int num =new RandomTest().test(5,12); Syste

指定范围的随机整数产生方法

在实际开发中会经常使用指定范围内的随机整数.借助于数学方法,总结出以下两种指定范围内的随机整数的产生方法. (1)产生0至n之间的随机整数:Math.floor(Math.random()*(n+1)). (2)产生n1至n2之间的随机整数:Math.floor(Math.random()*(n2-n1))+n1.

Javascript或jQuery方法产生任意随机整数

方法1:javascritp方法 1 2 3 4 5 6 //随机数    function diu_Randomize(b,e){        if(!b && b!=0 || !e){return "?";}        return Math.floor( ( Math.random() * e ) + b );    }    $(window).load = $(".ps"+diu_Randomize(1,12)).show();//1

java Math.random()生成从n到m的随机整数

Java中Math类的random()方法可以生成[0,1)之间的随机浮点数.而double类型数据强制转换成int类型,整数部分赋值给int类型变量,小数点之后的小数部分将会丢失. 如果要生成[0,n]的随机整数的话,只需要Math.random()乘以n+1,生成[0,n+1)的浮点数,再强制类型转换为int类型,只取其整数部分,即可得到[0,n]的整数. int b=(int)(Math.random()*10);//生成[0,9]之间的随机整数. int temp=m+(int)(Mat

C++生成随机数(随机整数/浮点数)方法

来源:https://blog.csdn.net/u014571489/article/details/82258467 产生一定范围随机数的通用表示公式要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;通用公式:a + rand() % n:其中的a是起始值,n是整数的范围.要取得a到b之间的随机整数,另一种表示:a

计算任意两个个位整数之间所能组成的奇数个数

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style> label{display: block; margin: 20px;} #box{width: 260px; overflow: hidden;min-height: 50px; border: solid 1px black; margin-left

(013)每日SQL学习:确定两个日期之间的工作日天数和计算一年周内各日期次数

1.确定两个日期之间的工作日天数 --确定两个日期之间的工作日天数with x0 as (select to_date('2018-01-01','yyyy-mm-dd') as 日期 from dual union all select to_date('2018-01-15','yyyy-mm-dd') as 日期 from dual ), x1 as --日期并列显示 (select min (日期) 开始日期,max(日期) 结束日期 from x0 ), x2 as --日期之间的天数