| От | Louis-David Mitterrand |
|---|---|
| Тема | Re: an aggregate to return max() - 1 value? |
| Дата | |
| Msg-id | 20100306133127.GA6562@apartia.fr обсуждение |
| Ответ на | Re: an aggregate to return max() - 1 value? (Greg Stark <gsstark@mit.edu>) |
| Список | pgsql-sql |
On Thu, Mar 04, 2010 at 08:53:10PM +0000, Greg Stark wrote: > SELECT col FROM tab ORDER BY col DESC OFFSET 1 LIMIT 1 > > In 8.4 OLAP window functions provide more standard and flexibility > method but in this case it wouldn't perform as well: > > postgres=# select i from (select i, rank() over (order by i desc) as r > from i) as x where r = 2; > i > ---- > 99 > (1 row) > > postgres=# select i from (select i, dense_rank() over (order by i > desc) as r from i) as x where r = 2; > i > ---- > 99 > (1 row) Wow, I didn't know about window functions until now. It's exactly what I need. Thanks Greg, and also thanks to others who sent their suggestion. Cheers,
В списке pgsql-sql по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера