From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | Lucas Adamski <ladamski(at)manageww(dot)com> |
Cc: | "Postgresql Performance Mailing list (E-mail)" <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Hack around lack of CORRESPONDING BY in EXCEPT? |
Date: | 2003-05-07 22:58:51 |
Message-ID: | 20030507154625.C32502-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Wed, 7 May 2003, Lucas Adamski wrote:
> I wrote it originally as:
>
> SELECT tracking.pk,events.data1,events.data2 FROM tracking,events WHERE
> tracking.event_fk = event.pk EXCEPT (SELECT events.data1,events.data2 FROM
> events WHERE event.type = 10)
>
> because each of these subqueries restricts the dataset greatly before doing
> the join. I've simplified the actual problem (as the real code has a bunch
> of extraneous stuff that makes it even more obtuse), but essentially, the
> tracking table maintains a record of the last record type that was entered.
> The type is incremented for each batch of events that is loaded. In this
> case, I'm assuming that the latest batch is type=10 (or 5000, or 100000),
> and the tracking table references a small subset of previous events
> (possibly of types 1-9 in this example). This particular query is supposed
> to return all tracking.pk's that are present in the previous batches (types)
> but not in the latest batch (10). I didn't mean to make it quite so obtuse,
> sorry. :)
Maybe something like nominally like (quickly done so possibly wrong
again):
select tracking.pk, events.data1, events.data2 from
tracking,events where not exists (select * from events e where
e.type=10 and e.data1=events.data1 and e.data2=events.data2)
and tracking.event_fk=event.pk
Get all tracking/event combinations, not including those where the data1/2
matches that of an event with type 10.
That might give dups if there are multiple events rows with that pk for
different types (but not 10).
From | Date | Subject | |
---|---|---|---|
Next Message | Randall Lucas | 2003-05-07 23:52:30 | Re: [SQL] Unanswered Questions WAS: An unresolved performance problem. |
Previous Message | Lucas Adamski | 2003-05-07 22:49:06 | Re: Hack around lack of CORRESPONDING BY in EXCEPT? |