sql >> データベース >  >> RDS >> PostgreSQL

Postgresでのクイックランダム行選択

    OFFSETを試してみることをお勧めします 、

    のように
    SELECT myid FROM mytable OFFSET floor(random() * N) LIMIT 1;
    

    N mytableの行数です 。最初にSELECT COUNT(*)を実行する必要がある場合があります Nの値を把握する 。

    更新 (Antony Hatchkinsによる)

    floorを使用する必要があります ここ:

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

    2行のテーブルを考えてみましょう。 random()*N 0 <= x < 2を生成します たとえば、SELECT myid FROM mytable OFFSET 1.7 LIMIT 1; 最も近いintへの暗黙の丸めのため、0行を返します。



    1. パフォーマンスの驚きと仮定:DATEDIFF

    2. SQLServerでの共通テーブル式の紹介

    3. PostgreSQLでパターンを照合しながら文字列をエスケープする方法

    4. PgBouncer1.6の新機能