Fonction RANDOM - Amazon Redshift

Si nous fournissons une traduction de la version anglaise du guide, la version anglaise du guide aura préséance en cas de contradiction. La traduction sera une traduction automatique.

Fonction RANDOM

La fonction RANDOM génère une valeur aléatoire compris entre 0,0 (inclus) et 1,0 (exclusif).

Syntax

RANDOM()

Type de retour

RANDOM renvoie un nombre DOUBLE PRECISION.

Notes d'utilisation

Appelez RANDOM après avoir défini une valeur initiale avec la commande SET afin que RANDOM génère des nombres dans une séquence prévisible.

Examples

  1. Calculez une valeur aléatoire comprise entre 0 et 99. Si le nombre aléatoire est de 0 à 1, cette requête génère un nombre aléatoire de 0 à 100 :

    select cast (random() * 100 as int); int4 ------ 24 (1 row)
  2. Récupère un échantillon aléatoire uniforme de 10 éléments :

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

    Maintenant, récupérez un échantillon aléatoire de 10 éléments, mais choisissez les éléments en fonction de leur prix. Par exemple, un élément dont le prix est le double d’un autre a deux fois plus de chance d’apparaître dans les résultats de la requête :

    select * from sales order by log(1 - random()) / pricepaid limit 10;
  3. Cet exemple utilise la commande SET pour définir une valeur SEED afin que RANDOM génère une séquence prévisible de nombres.

    D'abord, renvoyez trois entiers RANDOM sans définir au préalable la valeur SEED :

    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)

    A présent, définissez la valeur SEED sur .25 et renvoyez trois nombres RANDOM supplémentaires :

    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)

    Enfin, réinitialisez la valeur SEED sur .25 et vérifiez que RANDOM renvoie les mêmes résultats que les trois appels précédents :

    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)