Catégories :

Fonctions de génération de données

NORMAL

Génère un nombre à virgule flottante pseudo-aléatoire normalement distribué avec un écart type spécifié mean et stddev (standard).

Syntaxe

NORMAL( <mean> , <stddev> , <gen> )
Copy

Arguments

mean

Constante spécifiant la valeur sur laquelle les valeurs de sortie doivent être centrées.

stddev

Constante spécifiant la largeur d’un écart-type.

Ceci spécifie la largeur d’un écart-type. Par exemple, si vous choisissez une moyenne de 0,0 et un écart-type de 1,0, si vous appelez cette fonction plusieurs fois, environ 68,2 % des valeurs renvoyées seront comprises entre -1,0 et +1,0 (c.-à-d. à moins d’un écart-type de la moyenne).

De même, si vous choisissez une moyenne de 5,0 et un écart type de 2, environ 68,2 % des valeurs seront comprises entre 3,0 et 7,0.

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

Renvoie un nombre aléatoire en virgule flottante. Les résultats cumulés d’un grand nombre d’appels répétés se rapprochent d’une distribution normale.

Notes sur l’utilisation

Cette fonction est apparentée à la fonction RANDOM mais en diffère, tant en ce qui concerne les plages de valeurs renvoyées que leur distribution.

  • RANDOM génère des entiers aléatoires de 64 bits selon une distribution uniforme. Il accepte un seed facultative qui permet de répéter des séquences aléatoires.

    Lorsque RANDOM est appelé un grand nombre de fois, les résultats sont répartis plus ou moins uniformément sur la plage de valeurs possibles. Par exemple, le nombre de résultats avec des valeurs comprises entre 1000 et 2000 est similaire au nombre de valeurs compris entre 2000 et 3000.

  • NORMAL génère des nombres entiers ou flottants aléatoires centrés sur la moyenne spécifiée, avec l’écart-type standard spécifié.

    Lorsque NORMAL est appelé un grand nombre de fois, la distribution des résultats est susceptible d’approcher une courbe « normale » (« courbe en forme de cloche »). Le centre de la courbe et sa « largeur » sont influencés par les paramètres mean et stddev. Les valeurs plus proches de la moyenne spécifiée ont plus de chances de se produire que les valeurs éloignées de la moyenne.

Exemples

Cela montre une utilisation typique avec une moyenne de 0 et un écart type de 1 :

SELECT normal(0, 1, random()) FROM table(generator(rowCount => 5));

+------------------------+
| NORMAL(0, 1, RANDOM()) |
|------------------------|
|           0.227384164  |
|           0.9945290748 |
|          -0.2045078571 |
|          -1.594607893  |
|          -0.8213296842 |
+------------------------+
Copy

Cela montre que si le paramètre gen est une constante, la sortie est une constante :

SELECT normal(0, 1, 1234) FROM table(generator(rowCount => 5));

+--------------------+
| NORMAL(0, 1, 1234) |
|--------------------|
|      -0.6604156716 |
|      -0.6604156716 |
|      -0.6604156716 |
|      -0.6604156716 |
|      -0.6604156716 |
+--------------------+
Copy