我有一张桌子,我想在PostgreSQL中选择N个随机行。
但是,我不想选择整个表格,但我想从尊重某些约束的行中选择随机数(例如,范围内的价格,颜色="红色"等等)
当id以连续的方式生成时,我已经看到了一些方法。但是,在这种情况下,会有很多空白。
有没有办法在不使用random()的命令的情况下执行此操作,这是否昂贵?
答案 0 :(得分:1)
使用postgresql 9.5,您可以使用
使用方法BERNOULLI和SYSTEM
的TABLESAMPLE
Hier是一些很好的例子和解释,更好:
Compare different random methods
首先安装扩展程序:
CREATE EXTENSION tsm_system_rows;
试试这个:
Select * from your_table tablesample system_rows(1000)