冗余LIMIT子句修改结果

时间:2018-03-14 18:09:40

标签: postgresql postgresql-10

我看到来自postgres的非常奇怪的结果。有谁知道这会怎么样?我有一个复杂的查询,我们称之为A:

SELECT COUNT(*) FROM (A LIMIT 100000) a;
2230
SELECT COUNT(*) FROM (A) a;
2230
SELECT COUNT(*) FROM (A LIMIT 100000) a WHERE position_id = 'f9f49009-8f95-4d29-a5e0-c0afaa71d3d3';
0
SELECT COUNT(*) FROM (A) a WHERE position_id = 'f9f49009-8f95-4d29-a5e0-c0afaa71d3d3';
17

少于100000行,因此LIMIT应该没有效果。但它确实如此。

顺便说一句,LIMIT的原因是这个查询来自一个自动插入限制的BI工具。我们在BI工具中看到了错误的数字,并且我已将其缩小到这一点。

这是postgres版本10.1

0 个答案:

没有答案