从Postgresql表中选择Random with Where子句且不带PK

时间:2017-03-15 08:10:53

标签: sql database postgresql

我有一张桌子,我想在PostgreSQL中选择N个随机行。

但是,我不想选择整个表格,但我想从尊重某些约束的行中选择随机数(例如,范围内的价格,颜色="红色"等等)

当id以连续的方式生成时,我已经看到了一些方法。但是,在这种情况下,会有很多空白。

有没有办法在不使用random()的命令的情况下执行此操作,这是否昂贵?

1 个答案:

答案 0 :(得分:1)

使用postgresql 9.5,您可以使用

  

使用方法BERNOULLI和SYSTEM

的TABLESAMPLE

Hier是一些很好的例子和解释,更好:

How to select random rows

Compare different random methods

More examples here

首先安装扩展程序:

  

CREATE EXTENSION tsm_system_rows;

试试这个:

Select * from your_table tablesample   system_rows(1000)