Psycopg2 - 返回前1000个结果并随机选择一个

时间:2013-07-02 14:15:20

标签: python postgresql psycopg2 postgresql-9.2

您好我有一个拥有270万条记录的postgresql“TABLE1”。每个记录都有一个字段“FIELD1”,可能是空的或可能有数据。我想要一个SELECT语句或方法,a)返回TABLE1的前1000个结果,其中FIELD1为空,b)随机选择其中一个记录返回python变量。帮助???

2 个答案:

答案 0 :(得分:2)

要选择前1000个结果,您可以在查询中使用限制

SELECT field1 FROM table1 ORDER BY id Limit 1000;

结果将是python中的列表。因此,您可以使用python random模块对结果列表进行操作。

答案 1 :(得分:1)

如果表现不是问题

SELECT *
FROM  (
   SELECT *
   FROM   tbl
   WHERE  field1 IS NULL
   ORDER  BY id           --?? unclear from question
   LIMIT  1000
   ) sub
ORDER  BY random()
LIMIT  1;

这将从“第一个”1000个空行返回1个完全随机的行 “Empty”表示NULL,“first”表示最小id

如果需要考虑表现,则需要更具体 如果您的情况匹配,这个相关的答案可能有所帮助:
Best way to select random rows PostgreSQL

相关问题