输入示例:
SELECT * FROM test; id | percent ----+---------- 1 | 50 2 | 35 3 | 15 (3 rows)
你会如何编写这样的查询,平均50%的时间我可以得到id=1的行,35%的时间行id=2,15%的时间行id=3
我try 了SELECT id FROM test ORDER BY p * random() DESC LIMIT 1
个,但结果不正确.在SELECT id FROM test ORDER BY p * random() DESC LIMIT 1
00次运行后,我得到了一个类似于:{1=6293, 2=3302, 3=405}
的分布,但我预计分布将接近:{1=5000, 2=3500, 3=1500}
.
有什么 idea 吗?