Generate a random number in the range 1 - 10

前端 未结 7 1978
-上瘾入骨i
-上瘾入骨i 2020-12-04 11:32

Since my approach for a test query which I worked on in this question did not work out, I\'m trying something else now. Is there a way to tell pg\'s random() fu

7条回答
  •  春和景丽
    2020-12-04 11:50

    To summarize and a bit simplify, you can use:

    -- 0 - 9
    select floor(random() * 10);
    -- 0 - 10
    SELECT floor(random() * (10 + 1));
    -- 1 - 10
    SELECT ceil(random() * 10);
    

    And you can test this like mentioned by @user80168

    -- 0 - 9
    SELECT min(i), max(i) FROM (SELECT floor(random() * 10) AS i FROM generate_series(0, 100000)) q;
    -- 0 - 10
    SELECT min(i), max(i) FROM (SELECT floor(random() * (10 + 1)) AS i FROM generate_series(0, 100000)) q;
    -- 1 - 10
    SELECT min(i), max(i) FROM (SELECT ceil(random() * 10) AS i FROM generate_series(0, 100000)) q;
    

提交回复
热议问题