As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Função RANDOM
A função RANDOM gera um valor aleatório entre 0,0 (inclusive) e 1,0 (exclusivo).
Sintaxe
RANDOM()
Tipo de retorno
RANDOM retorna um número de DOUBLE PRECISION.
Exemplos
-
Compute um valor aleatório entre 0 e 99. Se o número aleatório é de 0 a 1, essa consulta produz um número aleatório de 0 a 100:
select cast (random() * 100 as int); INTEGER ------ 24 (1 row)
-
Recupere uma amostra aleatória uniforme de 10 itens:
select * from sales order by random() limit 10;
Agora recupere uma amostra aleatória de 10 itens, mas escolha os itens em proporção aos preços. Por exemplo, um item cujo preço é o dobro de outro tem duas vezes mais probabilidade de aparecer nos resultados de consulta:
select * from sales order by log(1 - random()) / pricepaid limit 10;
-
Este exemplo usa o comando SET para definir um valor SEED para que RANDOM gere uma sequência previsível de números.
Primeiro, retorne três inteiros RANDOM sem definir o valor de SEED primeiro:
select cast (random() * 100 as int); INTEGER ------ 6 (1 row) select cast (random() * 100 as int); INTEGER ------ 68 (1 row) select cast (random() * 100 as int); INTEGER ------ 56 (1 row)
Agora, defina o valor de SEED como
.25
e retorne mais três números RANDOM:set seed to .25; select cast (random() * 100 as int); INTEGER ------ 21 (1 row) select cast (random() * 100 as int); INTEGER ------ 79 (1 row) select cast (random() * 100 as int); INTEGER ------ 12 (1 row)
Por fim, redefina o valor de SEED como
.25
e verifique se RANDOM retorna os mesmos resultados que as três chamadas anteriores:set seed to .25; select cast (random() * 100 as int); INTEGER ------ 21 (1 row) select cast (random() * 100 as int); INTEGER ------ 79 (1 row) select cast (random() * 100 as int); INTEGER ------ 12 (1 row)