PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Saya memerlukan fungsi untuk memilih 88 baris acak dari tabel (tanpa duplikat)

Inilah solusi cepat yang mungkin Anda sukai:

CREATE EXTENSION IF NOT EXISTS tsm_system_rows;

     select * from task 
tablesample system_rows (88);

Untuk referensi, TABLESAMPLE ada dalam dokumen untuk SELECT:https://www. postgresql.org/docs/current/sql-select.html

Berikut ini penulisan fitur yang cukup bagus:

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

...dan bagian lain tentang subjek umum pengambilan sampel acak oleh penulis yang sama:

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

tsm_system_rows adalah salah satu dari dua ekstensi pengambilan sampel standar, didokumentasikan di sini:https:// /www.postgresql.org/docs/current/tsm-system-rows.html

Hai! Saya senang Anda menanyakan pertanyaan ini. Saya cenderung menggunakan metode BERNOULLI, yang dibangun ke dalam SELECT di luar kotak, tetapi didasarkan pada persentase. Saya baru saja mencoba ini dan berfungsi dengan baik:

select * from task 
tablesample BERNOULLI (1)
limit 88



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Manajemen &Pemantauan Basis Data untuk PostgreSQL 12

  2. Bagaimana cara menutup koneksi idle di PostgreSQL secara otomatis?

  3. PostgreSQL - Tambahkan kunci ke setiap objek dari array JSONB

  4. c++ mengonversi cap waktu postgres tanpa zona waktu ke time_t

  5. Django :bagaimana cara menggunakan banyak database?