From: | Dianna Harter <dharter(at)mynewplace(dot)com> |
---|---|
To: | nicoletta maia <nicoletta(dot)maia(at)gmail(dot)com> |
Cc: | "pgsql-sql(at)postgresql(dot)org" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: Window function sort order help |
Date: | 2011-09-14 16:54:57 |
Message-ID: | 25770AAABEA9A2499B5427E0DCEE9C9B323706179E@BE262.mail.lan |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Thank you. Interesting solution. Unfortunately, it's performance is not very good, since it involves joining a large table 3 times. I do have a solution that uses a temp table, but I was trying to rework it into a single query to improve performance.
Thank you again for your help.
Dianna
2011/9/13 nicoletta maia :
[snip]
> I tried to write the query without using the window:
>
> SELECT `X`.`consumer_id`, `X`.`move_date` , `X`.`history_timestamp` ,
> MIN( `Y`.`history_timestamp` ) AS `start_time`
> FROM
> `Table` AS `X`
> JOIN
> `Table` AS `Y`
> ON `X`.`consumer_id` = `Y`.`consumer_id`
> AND `X`.`move_date` = `Y`.`move_date`
> AND `X`.`history_timestamp` >= `Y`.`history_timestamp`
> LEFT JOIN
> `Table` AS `Z`
> ON `X`.`consumer_id` = `Z`.`consumer_id`
> AND `X`.`move_date` <> `Z`.`move_date`
> AND `X`.`history_timestamp` >= `Z`.`history_timestamp`
> AND `Y`.`history_timestamp` <= `Z`.`history_timestamp`
> WHERE `Z`.`consumer_id` IS NULL
> GROUP BY `X`.`consumer_id`, `X`.`move_date` , `X`.`history_timestamp`
> ORDER BY `X`.`consumer_id`, `X`.`history_timestamp` ASC
From | Date | Subject | |
---|---|---|---|
Next Message | Nicoletta Maia | 2011-09-14 17:24:48 | Re: Window function sort order help |
Previous Message | Thomas Kellerer | 2011-09-14 09:02:18 | Re: Window function sort order help |