pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: pgsql-performance@postgresql.org
Subject: Re: Performance issues
Date: Tue, 17 Mar 2015 16:30:24 +0100
Message-ID: <55084890.6000907@2ndquadrant.com> (raw)
In-Reply-To: <me9guu$cvp$1@ger.gmane.org>
References: <84a6fe4be04c3ef0a714851977860ac8@mail.gmail.com>
	<CACKkDGETLNUON-bLM0gCo_r-+ts3Q29aQwmargv1Usi=PgQvVg@mail.gmail.com>
	<CANwLwatODrcwDgO+JXG-L=jJJQTucvUrur01E-y_tE_PT8i7kQ@mail.gmail.com>
	<55034A48.4040409@2ndquadrant.com>
	<CANwLwavsL-+SDRB7VKxQ_OJq-T=MVQV6T6qH5Aug9PaSWt2C0w@mail.gmail.com>
	<CACKkDGHOnb2efYvLj557E5pSuzS+Wmu9dqG3Z=b_dbYhpi7muQ@mail.gmail.com>
	<CAOR=d=2L86fB+HWX8h078tYsd7LVKKFPQb=jfd8YNRU1Fc7mUA@mail.gmail.com>
	<849e75d9463938372dd4c516f5c5d89c@mail.gmail.com>
	<55037CEA.5050906@2ndquadrant.com>
	<55073272.20209@BlueTreble.com>
	<55074424.9050506@2ndquadrant.com>
	<55076FFB.9090105@BlueTreble.com>
	<61a7 a27428e588411e8ac1817043205c@mail.gmail.com>
	<550813CD.7040605@2ndqu adrant.com>
	<acf5780f0e3c7d42d5f6499830378008@mail.gmail.com>
	<55083236.8070900@2ndquadrant.com>
	<me9d4u$9b5$1@ger.gmane.org>
	<55083D74.4000601@2ndquadrant.com>
	<me9guu$cvp$1@ger.gmane.org>
List-Unsubscribe:  <mailto:majordomo@postgresql.org?body=unsub%20pgsql-performance>

On 17.3.2015 16:24, Thomas Kellerer wrote:
> 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

Nice, thanks!

> 
> Btw: your row_number() usage wouldn't return the "latest" row either. 
> It would return the "oldest" row.

Oh, right. I forgot the DESC in the window.


-- 
Tomas Vondra                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance



view thread (59+ messages)  latest in thread

Message-ID: <55084890.6000907@2ndquadrant.com>
Permalink:  ../55084890.6000907@2ndquadrant.com/
Also on:    postgresql.org/message-id/55084890.6000907@2ndquadrant.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: tomas.vondra@2ndquadrant.com
  Subject: Re: Performance issues
  In-Reply-To: <55084890.6000907@2ndquadrant.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox