- Categorias:
UNIFORM¶
Gera um número pseudoaleatório distribuído uniformemente na faixa inclusiva [min
, max
].
Sintaxe¶
UNIFORM( <min> , <max> , <gen> )
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¶
Os exemplos a seguir demonstram como utilizar a função UNIFORM. Os valores exibidos na saída abaixo podem diferir dos valores retornados quando você mesmo executa estes exemplos.
Este exemplo gera cinco números inteiros aleatórios no intervalo de 1 a 10 (inclusive):
SELECT UNIFORM(1, 10, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
+--------------------------+
| UNIFORM(1, 10, RANDOM()) |
|--------------------------|
| 6 |
| 1 |
| 8 |
| 5 |
| 6 |
+--------------------------+
Este exemplo gera cinco números de ponto flutuante no intervalo de 0 a 1 (inclusive):
SELECT UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
+---------------------------------------+
| UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) |
|---------------------------------------|
| 0.1180758313 |
| 0.4945805484 |
| 0.7113092833 |
| 0.06170806767 |
| 0.01635235156 |
+---------------------------------------+
Esse exemplo mostra que, se o argumento gen
for uma constante, o resultado será uma constante:
SELECT UNIFORM(1, 10, 1234) FROM TABLE(GENERATOR(ROWCOUNT => 5));
+----------------------+
| UNIFORM(1, 10, 1234) |
|----------------------|
| 7 |
| 7 |
| 7 |
| 7 |
| 7 |
+----------------------+