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;