Re: Performance issues
От | Thomas Kellerer |
---|---|
Тема | Re: Performance issues |
Дата | |
Msg-id | me9guu$cvp$1@ger.gmane.org обсуждение исходный текст |
Ответ на | Re: Performance issues (Tomas Vondra <tomas.vondra@2ndquadrant.com>) |
Ответы |
Re: Performance issues
|
Список | pgsql-performance |
Tomas Vondra schrieb am 17.03.2015 um 15:43: > On 17.3.2015 15:19, Thomas Kellerer wrote: >> 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. > > How do you get the last record (with respect to a timestamp column) > using a DISTINCT ON? You need to use "order by ... desc". See here: http://sqlfiddle.com/#!15/d4846/2 Btw: your row_number() usage wouldn't return the "latest" row either. It would return the "oldest" row.
В списке pgsql-performance по дате отправления: