Categorias:

Funções de geração de dados

UNIFORM

Gera um número pseudoaleatório distribuído uniformemente na faixa inclusiva [min, max].

Sintaxe

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

Argumentos

min

Uma constante especificando o valor mínimo (inclusive) do número gerado.

max

Uma constante especificando o valor máximo (inclusive) do número gerado.

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

Se um ou ambos de min ou max for um número de ponto flutuante, UNIFORM retornará um número de ponto flutuante. Se ambos min e max forem números inteiros, UNIFORM retornará um número inteiro.

Notas de uso

Esta função está relacionada à função RANDOM, mas é diferente dela. Ambas as funções geram distribuições uniformes, mas há diferenças nas faixas dos valores retornados.

  • RANDOM gera inteiros pseudoaleatórios de 64 bits. Aceita uma semente opcional que permite que as sequências se repitam.

  • UNIFORM gera números inteiros aleatórios ou de ponto flutuante na faixa especificada.

Exemplos

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