Re: Upsert Functionality using CTEs - Mailing list pgsql-general

From Tim Uckun
Subject Re: Upsert Functionality using CTEs
Date
Msg-id CAGuHJrOkyi=VZwD_rqzSUGagNxgT4FQcE3=uv2yt=TahdA2CnQ@mail.gmail.com
Whole thread Raw
In response to Re: Upsert Functionality using CTEs  (Geoff Winkless <pgsqlgeneral@geoff.dj>)
List pgsql-general
>
>
> I read it that he has multiple sales from the same person? In which case
> pretending that the two sales were from different people isn't the correct
> result at all.

Actually it turns out that both cases exist.

>
> I may be missing the point of the query, but wasn't it to add an entry for
> each email address and (if it already exists in people) to update the
> firstname field to match the firstname in the order?

Yes. Basically the sales table is denormalized and I need to create or
update normalized tables from it. As you have pointed out the
difficult scenario is when the same person has multiple sales.


> Given that the results will be returned in random order I would just change
> the "nd" query to SELECT DISTINCT ON (email) , but like I said I may be
> missing the point.

I think in this case I am probably going to have go through the
records one at a time.  I run into the same issues with other columns
such as products.

pgsql-general by date:

Previous
From: Geoff Winkless
Date:
Subject: Re: Upsert Functionality using CTEs
Next
From: Merlin Moncure
Date:
Subject: fascinating article on postgresql mailing lists