Catégories :

Fonctions de génération de données

UNIFORM

Génère un nombre pseudo-aléatoire uniformément distribué dans l’intervalle inclusif [min, max].

Syntaxe

UNIFORM( <min> , <max> , <gen> )
Copy

Arguments

min

Une constante spécifiant la valeur minimale (incluse) du nombre généré.

max

Une constante spécifiant la valeur maximale (incluse) du nombre généré.

gen

Expression qui sert de source brute de nombres aléatoires uniformes, généralement la fonction RANDOM. Pour plus d’informations, voir Fonctions de génération de données Notes sur l’utilisation.

Renvoie

Si min ou max est un nombre à virgule flottante, UNIFORM renvoie un nombre à virgule flottante. Si min et max sont des entiers, UNIFORM renvoie un entier.

Notes sur l’utilisation

Cette fonction est liée à la fonction RANDOM , mais en est différente. Les deux fonctions génèrent des distributions uniformes, mais il existe des différences dans les plages des valeurs renvoyées.

  • RANDOM génère des entiers pseudo-aléatoires de 64 bits. Il accepte un seed facultatif qui permet de répéter les séquences.

  • UNIFORM génère des nombres entiers ou flottants aléatoires dans la plage spécifiée.

Exemples

SELECT uniform(1, 10, random()) FROM table(generator(rowCount => 5));

--------------------------+
 uniform(1, 10, random()) |
--------------------------+
 6                        |
 4                        |
 7                        |
 9                        |
 4                        |
--------------------------+
Copy
SELECT uniform(0::float, 1::float, random()) FROM table(generator(rowCount => 5));

---------------------------------------+
 uniform(0::float, 1::float, random()) |
---------------------------------------+
 0.2895427479                          |
 0.7178660941                          |
 0.6925603163                          |
 0.05914526824                         |
 0.8243151404                          |
---------------------------------------+
Copy
SELECT uniform(1, 10, 1234) FROM table(generator(rowCount => 5));

----------------------+
 uniform(1, 10, 1234) |
----------------------+
 7                    |
 7                    |
 7                    |
 7                    |
 7                    |
----------------------+
Copy