Cómo seleccionar/ordenar aleatoriamente elementos en postgreSQL

Usamos la funcion RANDOM() para generar números aleatorios y usarlos posteriormente en el ordenamiento................
Publicado
Actualizado
Engagements 0 Comentario

RANDOM() Para ordenar aleatoriamente

Para seleccionar u ordenar aleatoriamente uno o varios registros en postgreSQL usaremos la función RANDOM() de la siguiente manera:

SELECT RANDOM() as orden, campo1, campo2, campo3 FROM tabla ORDER BY orden;

Si queremos solo obtener un registro aleatorio le agregamos LIMIT a nuestra sentencia SQL, ejemplo:

SELECT RANDOM() as orden, campo1, campo2, campo... FROM tabla ORDER BY orden LIMIT 1;

Existen otros métodos de ordenamiento aleatorio, pero este es el más fácil y efectivo en la mayoría de los casos. 

Función RANDOM y números enteros

La función RANDOM() Genera un número aleatorio entre 0 y 1 si deseamos crear números enteros con límite podemos realizarlo usando la función ROUND() de la siguiente forma: 

SELECT ROUND(RANDOM() * X) AS numero; 

Reemplazar X por el limite del numero que deseas generar, ejemplo: Si deseamos generar un número entre 0 y 100 podemos ejecutar: 

SELECT ROUND(RANDOM() * 100) AS numero; 

Función RANDOM y límites

Si deseamos generar un número entero con límites entre 2 valores podemos usar la siguiente sentencia:

SELECT ROUND(RANDOM()*(MAX-MIN)+MIN) AS numero; 

Reemplazar MAX por el valor límite máximo y MIN por el valor límite mínimo. Ejemplo:

Deseamos generar un número aleatorio entre 5 y 15 ejecutamos la siguiente sentencia: 

SELECT ROUND(RANDOM()*(15-5)+15) AS numero; 

Comentarios