Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Función RANDOM
La función RANDOM genera un valor aleatorio entre 0,0 (inclusive) y 1,0 (exclusive).
Sintaxis
RANDOM()
Tipo de retorno
RANDOM devuelve un número con un valor de DOUBLE PRECISION.
Ejemplos
-
Se computa un valor aleatorio entre 0 y 99. Si el número aleatorio está comprendido entre 0 y 1, esta consulta produce un número aleatorio comprendido entre 0 y 100:
select cast (random() * 100 as int); INTEGER ------ 24 (1 row)
-
Recupera una muestra aleatoria uniforme de 10 objetos:
select * from sales order by random() limit 10;
Ahora recupera una muestra aleatoria de 10 objetos, pero elige los objetos en proporción a sus precios. Por ejemplo, un objeto que cuesta el doble del precio de otro tendría el doble de posibilidades de aparecer en los resultados de la búsqueda:
select * from sales order by log(1 - random()) / pricepaid limit 10;
-
En este ejemplo se usa el comando SET para establecer un valor SEED de modo que RANDOM genere una secuencia predecible de números.
Primero, se devuelven tres valores enteros RANDOM sin establecer antes el valor SEED:
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)
Ahora, establezca el valor SEED en
.25
y devuelva tres números RANDOM más: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)
Finalmente, restablezca el valor SEED a
.25
y verifique que RANDOM devuelva los mismos resultados que en las tres ejecuciones 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)