Categorias:

Funções de geração de dados

NORMAL

Gera um número de ponto flutuante pseudoaleatório e distribuído normalmente, com mean e stddev (desvio padrão) especificados.

Sintaxe

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

Argumentos

mean

Uma constante especificando o valor em que os valores de saída devem ser centrados.

stddev

Uma constante especificando a largura de um desvio padrão.

Isto especifica a largura de um desvio padrão. Por exemplo, se você escolher uma média de 0,0 e um desvio padrão de 1,0, então se você chamar esta função muitas vezes, aproximadamente 68,2% dos valores retornados estarão entre -1,0 e +1,0 (isto é, dentro de um desvio padrão da média).

Da mesma forma, se você escolher uma média de 5,0 e um desvio padrão de 2, então aproximadamente 68,2% dos valores estarão entre 3,0 e 7,0.

gen

Uma expressão que serve como uma fonte bruta de números aleatórios uniformes, tipicamente a função RANDOM. Para obter mais informações, consulte as funções de geração de dados Notas de uso.

Retornos

Retorna um número de ponto flutuante aleatório. Os resultados acumulados de um grande número de chamadas repetidas aproximam-se de uma distribuição normal.

Notas de uso

Esta função está relacionada, mas difere da função RANDOM, tanto nos intervalos dos valores devolvidos como em sua distribuição.

  • RANDOM gera números inteiros aleatórios de 64 bits em uma distribuição uniforme. Ele aceita uma semente opcional que permite a repetição de sequências aleatórias.

    Quando RANDOM é chamado um grande número de vezes, os resultados são distribuídos mais ou menos uniformemente pela faixa de valores possíveis. Por exemplo, o número de resultados com valores entre 1000 e 2000 é semelhante ao número de valores entre 2000 e 3000.

  • NORMAL gera números inteiros aleatórios ou de ponto flutuante centrados na média especificada, com o desvio padrão especificado.

    Quando NORMAL é chamado muitas vezes, é provável que a distribuição dos resultados se aproxime de uma curva “normal” (às vezes chamada de “curva em forma de sino”). O centro da curva e sua «amplitude» são influenciados pelos parâmetros mean e stddev. Valores mais próximos da média especificada são mais prováveis de ocorrer do que valores distantes da média.

Exemplos

Isso mostra o uso típico com uma média de 0 e um desvio padrão 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

Isso mostra que se o parâmetro gen for uma constante, então a saída será uma 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