sql >> Base de Datos >  >> RDS >> PostgreSQL

selección rápida de filas aleatorias en Postgres

Es posible que desee experimentar con OFFSET , como en

SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;

El N es el número de filas en mytable . Es posible que primero deba hacer SELECT COUNT(*) para averiguar el valor de N .

Actualizar (por Antony Hatchkins)

Debes usar floor aquí:

SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;

Considere una tabla de 2 filas; random()*N genera 0 <= x < 2 y por ejemplo SELECT myid FROM mytable OFFSET 1.7 LIMIT 1; devuelve 0 filas debido al redondeo implícito al int más cercano.