Re: select distinct in a subquery bug/problem

From: Dan Halbert <halbert(at)halwitz(dot)org>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: select distinct in a subquery bug/problem
Date: 2012-08-11 19:01:16
Message-ID: 5026ABFC.4050803@halwitz.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 8/11/2012 2:21 PM, Raymond O'Donnell wrote:
> On 11/08/2012 04:32, Dan Halbert wrote:
>> 1. select count(t1_id) from t1 where t1_id not in (select distinct t1_id
>> from t2 limit 1103) ==> 13357 [CORRECT result]
>>
>> 2. select count(t1_id) from t1 where t1_id not in (select distinct t1_id
>> from t2 limit 1104) ==> 0 [WRONG result; should be close to 13357]
> Does it make a difference if you include an ORDER BY in the subquery?
> AIUI, the particular result set from the subquery is indeterminate (in
> theory anyway) without it.
>
> Ray.
>
Yes, it's artificial. The real problem, as Tom Lane hinted, is that NOT
IN (..., NULL, ...) returns NULL and messes up the result, so if the
SELECT produces any NULL's, the query doesn't do what I want. So I
needed to not use NOT IN or make sure there are no NULL's

Dan

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Andrus 2012-08-11 19:07:25 How to raise error from PostgreSql SQL statement if some condition is met
Previous Message Raymond O'Donnell 2012-08-11 18:21:02 Re: select distinct in a subquery bug/problem