PostgreSQL选择20个随机记录

Pee*_*Haa 18 sql postgresql

如何在SQL(PostgreSQL)查询中选择20个随机行?

dit*_*kin 26

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 20
Run Code Online (Sandbox Code Playgroud)

  • 请注意,虽然这非常慢,如果你有超过20k行,不要这样做. (8认同)
  • @Johan好点!我创建了一个[SQLFiddle](http://sqlfiddle.com/#!15/80065/6)来演示`ORDER BY`语句的一些性能差异.结果是主键排序最快,然后依次按索引排序.然后,通过*未编入索引*的任何字段进行排序会显着增加成本.但是,`ORDER BY RANDOM()`并不比非索引列的排序明显慢*(至少对于**250k行**).对于数百万行,结果可能会大不相同......我没有测试那么多. (3认同)