Re: using window-functions to get freshest value - how? - Mailing list pgsql-general

From Massa, Harald Armin
Subject Re: using window-functions to get freshest value - how?
Date
Msg-id e3e180dc0911200438n30e26956i6da37ba2e4deedd2@mail.gmail.com
Whole thread Raw
In response to Re: using window-functions to get freshest value - how?  (Thom Brown <thombrown@gmail.com>)
List pgsql-general
Thom, depesz, silly,

> SELECT DISTINCT ON (id_bf) id_bf, wert, letztespeicherung
> FROM rfmitzeit
> ORDER BY id_bf, letztespeicherung ASC;

yes, that does work. I put it in the real world query (my example was
reduced to the relevant parts), and it provides an impressive speedup
(down from 2234 to 1600ms on the worst possible dataset with worst
possible disk/cache situation)

And I learned that

DISTINCT ON (xxx) .... order by zzzz

will first do the order by, and then definitely take every "first row"
of the ordered result.

My expection of DISTINCT on (id_bf) was "give me ONLY ONE of the rows
with every id_bf", I was not aware of the fact that it will give me
THE FIRST of the 'ordered by' result set.

Thanks to all who helped me learn today!

Harald

(and sorry for leaving HTML on on some of the mails)

--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pigeon
-
%s is too gigantic of an industry to bend to the whims of reality

pgsql-general by date:

Previous
From: Thom Brown
Date:
Subject: Re: using window-functions to get freshest value - how?
Next
From: Brian Modra
Date:
Subject: Re: Strange performance degradation