我正在使用Postgresql 9.2并有一个简单的学生表如下
id | proj_id | mark | name | test_date
我有2个查询,如下所述
select * from (select distinct on (proj_id) proj_id , mark, name,
test_date from students )
t
where t.mark <= 1000
VS
select distinct on (proj_id) proj_id , mark, name, test_date from
students where mark <= 1000
当我运行每个查询超过10000条记录时,每个查询返回不同的结果,尤其是结果计数,但是对于少于3000条记录,结果将是相同的。
这是postgresql 9.2的错误还是我错过了什么?
答案 0 :(得分:1)
您的查询产生两组不同的结果,因为它们以不同的方式应用逻辑。
由于您没有应用任何排序,因此第一个查询可能会在每次运行时返回不同数量的行 - 因为(oq/clj-command! '{:update :person :set {:likes "animals"} :where [(= :name "Bob")]})
字段可能包含与{相关的任何值{1}}。