嗨,我有一个包含 270 万条记录的 postgresql“TABLE1”。每条记录都有一个字段“FIELD1”,该字段可能为空,也可能有数据。我想要一个 SELECT 语句或方法,它 a) 从 TABLE1 返回前 1000 个结果,其中 FIELD1 为空,b) 随机选择一个记录以返回到 python 变量。帮助???
问问题
676 次
2 回答
2
要选择前 1000 个结果,您可以在查询中使用限制
SELECT field1 FROM table1 ORDER BY id Limit 1000;
结果将是 python 中的列表。所以你可以使用 python random模块对结果列表进行操作。
于 2013-07-02T14:17:48.533 回答
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 个完全随机的行。
“空”的意思NULL
,“第一”的意思是最小id
的。
如果性能是一个问题,您需要更加具体。
如果您的情况匹配,此相关答案可能会有所帮助:
Best way to select random rows PostgreSQL
于 2013-07-02T16:37:39.647 回答