

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# RANDOM 関数
<a name="RANDOM"></a>

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

## 構文
<a name="RANDOM-synopsis"></a>

```
RANDOM()
```

## 戻り型
<a name="RANDOM-return-type"></a>

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

## 例
<a name="RANDOM-examples"></a>

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

   ```
   select cast (random() * 100 as int);
   
   INTEGER
   ------
   24
   (1 row)
   ```

1. 10 個のアイテムの均一なランダムサンプルを取得します。

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

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

   ```
   select * 
   from sales
   order by log(1 - random()) / pricepaid
   limit 10;
   ```

1. 次の例では、SET コマンドを使用して SEED 値を設定します。これにより RANDOM が予測可能な順序で数値を生成します。

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

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

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

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

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

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