PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

szybki losowy wybór wiersza w Postgresie

Możesz poeksperymentować z OFFSET , jak w

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

N to liczba wierszy w mytable . Być może trzeba będzie najpierw wykonać SELECT COUNT(*) aby obliczyć wartość N .

Aktualizacja (autorstwa Antony'ego Hatchkinsa)

Musisz użyć floor tutaj:

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

Rozważ tabelę z 2 rzędami; random()*N generuje 0 <= x < 2 i na przykład SELECT myid FROM mytable OFFSET 1.7 LIMIT 1; zwraca 0 wierszy z powodu niejawnego zaokrąglenia do najbliższej liczby całkowitej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podziel podany ciąg i przygotuj instrukcję case

  2. nieprawidłowa sekwencja bajtów do kodowania UTF8

  3. Jak utworzyć sekwencję partycjonowaną PostgreSQL?

  4. Jak wyodrębnić numer tygodnia z daty w PostgreSQL?

  5. Błąd:nie znaleziono pliku wykonywalnego pg_config podczas instalacji psycopg2 na Alpine w Dockerze