sql >> Databasteknik >  >> RDS >> PostgreSQL

snabbt slumpmässigt radval i Postgres

Du kanske vill experimentera med OFFSET , som i

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

N är antalet rader i mytable . Du kan behöva göra en SELECT COUNT(*) först för att ta reda på värdet på N .

Uppdatera (av Antony Hatchkins)

Du måste använda floor här:

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

Tänk på en tabell med 2 rader; random()*N genererar 0 <= x < 2 och till exempel SELECT myid FROM mytable OFFSET 1.7 LIMIT 1; returnerar 0 rader på grund av implicit avrundning till närmaste int.



  1. Hur man använder ora_hash på en kolumn med datatypen xmltype

  2. ska jag aktivera c3p0-satspoolning?

  3. Vad är strängsammansättningsoperatorn i Oracle?

  4. mySQL konvertera varchar till datum