Catégories :

Fonctions de génération de données

NORMAL

Renvoie un nombre à virgule flottante réparti normalement, avec un écart type spécifié mean et stddev (standard).

Cette fonction est liée à la fonction RANDOM similaire, mais différente de celle-ci.

  • Lorsque RAND 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.

  • Lorsque NORMAL est appelé un grand nombre de fois, la distribution des résultats est susceptible d’approcher une courbe « normale » (parfois appelée « 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.

Syntaxe

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

Arguments

mean

C’est la valeur sur laquelle vous souhaitez centrer les valeurs de sortie.

stddev

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

Spécifie l’expression du générateur pour la fonction. Pour plus d’informations, voir Notes sur l’utilisation.

Notes sur l’utilisation

À mesure que le nombre d’appels augmente, les résultats cumulés tendent à se rapprocher d’une vraie distribution « normale », en supposant que la fonction gen génère des valeurs uniformément réparties.

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 |
+------------------------+

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 |
+--------------------+