| From: | "Clark Slater" <pg(at)slatech(dot)com> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Cc: | "Clark Slater" <pg(at)slatech(dot)com> |
| Subject: | Re: filter duplicates by priority |
| Date: | 2009-07-15 15:26:10 |
| Message-ID: | 51354.96.236.139.176.1247671570.squirrel@webmail10.pair.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
This solved my problem. Now why didn't I think of that!? Thank you very
much everybody. This list is an incredible resource.
-Clark
> AFAICS, changing it to ORDER BY part_number,priority would solve the
> stated problem. If you really need the final result in priority rather
> than part number order, put the whole thing in a sub-select and re-sort
> outside it.
>
> regards, tom lane
>
> "Clark Slater" <pg(at)slatech(dot)com> writes:
>> I am trying to use DISTINCT ON to filter out *potential* duplicate
>> values
>> from a set of sub queries. There are certain cases where there can be
>> repetitive part numbers that are priced differently. I'm trying to
>> start
>> with the full list, ordered by priority, and then remove any repeats
>> that
>> have a lesser priority.
>
>> SELECT DISTINCT ON (part_number) * FROM (
>> SELECT part_number, priority FROM ...
>> UNION ALL
>> SELECT part_number, priority FROM ...
>> UNION ALL
>> SELECT part_number, priority FROM ...
>> ) AS filter_duplicates ORDER BY priority,part_number
>
>> The above statement does not work because if I ORDER BY
>> priority,part_number then I have to DISTINCT ON (priority,part_number).
>> But DISTINCT ON (priority, part_number) does not remove the repeated
>> rows
>> because the same part_number with a different priority becomes a
>> distinct
>> tuple.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Stuart Bishop | 2009-07-15 15:38:39 | Connection pool or load balancer supporting ident authentication |
| Previous Message | Abraham, Danny | 2009-07-15 15:07:48 | initdb --locale=LATIN1 fails on Windows |