Amazon Redshift
データベース開発者ガイド

RANDOM 関数

RANDOM 関数は、0.0 (この値を含む) ~1.0 (この値は含まない) のランダム値を生成します。

構文

RANDOM()

戻り型

RANDOM は DOUBLE PRECISION 型の数値を返します。

使用に関する注意事項

SET コマンドでシード値を設定した後、RANDOM を呼び出すと、RANDOM が予測可能な順序で数値を生成します。

  1. 0~99 のランダム値を計算します。ランダムな数値が 0~1 である場合、このクエリは、0~100 のランダムな数値を生成します。

    select cast (random() * 100 as int); int4 ------ 24 (1 row)
  2. 10 個のアイテムの均一なランダムサンプルを取得します。

    select * from sales order by random() limit 10;

    10 個のアイテムのランダムサンプルを取得しますが、料金に比例してアイテムを選択します。たとえば、別の料金の 2 倍のアイテムは、クエリ結果に表示される可能性が 2 倍になります。

    select * from sales order by log(1 - random()) / pricepaid limit 10;
  3. 次の例では、SET コマンドを使用して SEED 値を設定します。これにより RANDOM が、予測可能な順序で数値を生成します。

    まず、SEED 値を最初に設定せずに、3 つの整数の乱数を返します。

    select cast (random() * 100 as int); int4 ------ 6 (1 row) select cast (random() * 100 as int); int4 ------ 68 (1 row) select cast (random() * 100 as int); int4 ------ 56 (1 row)

    次に、SEED 値を .25 に設定して、さらに 3 つの整数の乱数を返します。

    set seed to .25; select cast (random() * 100 as int); int4 ------ 21 (1 row) select cast (random() * 100 as int); int4 ------ 79 (1 row) select cast (random() * 100 as int); int4 ------ 12 (1 row)

    最後に、SEED 値を .25 にリセットして、RANDOM が前の 3 つの呼び出しと同じ結果を返すことを確認します。

    set seed to .25; select cast (random() * 100 as int); int4 ------ 21 (1 row) select cast (random() * 100 as int); int4 ------ 79 (1 row) select cast (random() * 100 as int); int4 ------ 12 (1 row)