計算min-max兩個整數之間的隨機整數
阿新 • • 發佈:2018-09-13
oss val 嵌入 stat set 總數 floor prim ble
/*------------------------------效率最低 功能:計算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 @icount=@@IDENTITY SELECT n ,COUNT(n) AS 數量 ,@icount AS 總數 ,COUNT(n) * 100.0 / @icount AS [占比例%] FROM @t GROUP BY n;
計算min-max兩個整數之間的隨機整數