Pemilihan Baris Rawak dengan Kebarangkalian Berwajaran
Memandangkan jadual dengan id lajur, kandungan dan berat, tugasnya ialah memilih baris secara rawak sambil mengambil kira berat. Dalam senario di mana tiga baris wujud dengan berat masing-masing 60, 40 dan 100, cabarannya adalah untuk mengira kebarangkalian memilih setiap baris seperti berikut:
Pensampelan Takungan Berwajaran
Pendekatan optimum untuk masalah ini ialah pensampelan takungan berwajaran, yang boleh memilih item dengan kebarangkalian yang berkadar dengan beratnya dengan berkesan. Begini cara untuk menerapkannya:
SELECT id, -LOG(RAND()) / weight AS priority FROM your_table ORDER BY priority LIMIT 1;
Pertanyaan SQL ini menggunakan logik berikut:
Teknik pensampelan takungan berwajaran ini boleh digunakan untuk memilih berbilang baris atau bahkan keseluruhan jadual dengan kebarangkalian berwajaran, menjadikannya penyelesaian serba boleh untuk pelbagai pemilihan data senario.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Baris Secara Rawak daripada Jadual dengan Kebarangkalian Berwajaran Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!