sql >> Databáze >  >> RDS >> PostgreSQL

rychlý náhodný výběr řádků v Postgresu

Možná budete chtít experimentovat s OFFSET , jako v

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

N je počet řádků v mytable . Možná budete muset nejprve provést SELECT COUNT(*) zjistit hodnotu N .

Aktualizovat (od Antonyho Hatchkinse)

Musíte použít floor zde:

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

Zvažte tabulku o 2 řádcích; random()*N generuje 0 <= x < 2 a například SELECT myid FROM mytable OFFSET 1.7 LIMIT 1; vrátí 0 řádků z důvodu implicitního zaokrouhlení na nejbližší int.



  1. kódování UTF8 neodpovídá národnímu prostředí en_US; zvolené nastavení LC_CTYPE vyžaduje kódování LATIN1

  2. Jak vyjádřit svou hodnotu jako DBA finančním manažerům

  3. Jednoduché používání funkcí DATEADD, DATEDIFF a DATEPART T-SQL

  4. Provedení WHERE IN na více sloupcích v Postgresql