Tomas Vondra schrieb am 17.03.2015 um 14:55:
>  (2) using window functions, e.g. like this:
>
>      SELECT * FROM (
>        SELECT *,
>             ROW_NUMBER() OVER (PARTITION BY touchpoint_execution_id
>                                ORDER BY FROM max_creation_dt) AS rn
>        FROM s_f_touchpoint_execution_status_history
>      ) foo WHERE rn = 1
>
>      But estimating this is also rather difficult ...
From my experience rewriting something like the above using DISTINCT ON is usually faster.
e.g.:
select distinct on (touchpoint_execution_id) *
from s_f_touchpoint_execution_status_history
order by touchpoint_execution_id, max_creation_dt;