这是我从具有均匀分布的表中选择随机行的方法。
SELECT * FROM foo OFFSET floor( random() * ( SELECT COUNT(*) FROM foo ) ) ORDER BY bar LIMIT 1;
让我们说我想选择一个非均匀分布的随机行,比如正态分布。
目前,我这样做的方式是:
SELECT * FROM foo OFFSET floor( $1 * ( SELECT COUNT(*) FROM foo ) ) ORDER BY bar LIMIT 1;
...并在执行前计算$1
的值。
SELECT
声明?