Pokud cur_odds
se mění jen zřídka, můžete implementovat následující algoritmus:
1) Vytvořte další sloupec prob_sum
, pro které
2) Vygenerujte náhodné číslo od 0 do 1:
3) Najděte první řádek, pro který je prob_sum > rnd
(pokud vytvoříte index BTREE na prob_sum
, dotaz by měl fungovat mnohem rychleji):