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

テーブルから88個のランダムな行を選択する関数が必要です(重複なし)

    あなたが好むかもしれない簡単な解決策は次のとおりです:

    CREATE EXTENSION IF NOT EXISTS tsm_system_rows;
    
         select * from task 
    tablesample system_rows (88);
    

    参考までに、TABLESAMPLEはSELECTのドキュメントにあります: https://www。 postgresql.org/docs/current/sql-select.html

    この機能の非常に優れた記述は次のとおりです。

    https://www.2ndquadrant.com/ en / blog / tablesample-in-postgresql-9-5-2 /

    ...そして同じ著者によるランダムサンプリングの一般的な主題に関する別の記事:

    https://www。 2ndquadrant.com/en/blog/tablesample-and-other-methods-for-getting-random-tuples/

    tsm_system_rowsは、次の2つの標準サンプリング拡張機能の1つです。 https:/ /www.postgresql.org/docs/current/tsm-system-rows.html

    おい!この質問をしてくれてうれしいです。私は、箱から出してSELECTに組み込まれているBERNOULLI法を使用する傾向がありますが、これはパーセンテージに基づいています。これを試してみましたが、問題なく動作します:

    select * from task 
    tablesample BERNOULLI (1)
    limit 88
    



    1. SQL Server(T-SQL)の特定のパーティションからすべての行を返す

    2. MySQLLEFTJOIN複数の条件

    3. debianlennyにpostgres9.0をインストールする

    4. エラーを修正できません:PL/SQL文が無視されました