Ако cur_odds
се променя рядко, можете да приложите следния алгоритъм:
1) Създайте друга колона prob_sum
, за което
2) Генерирайте произволно число от 0 до 1:
3) Намерете първия ред, за който prob_sum > rnd
(ако създадете BTREE индекс в prob_sum
, заявката трябва да работи много по-бързо):