| От | Ron St-Pierre |
|---|---|
| Тема | ORDER BY and LIMIT with SubSelects |
| Дата | |
| Msg-id | 400EB45A.40309@syscor.com обсуждение исходный текст |
| Ответы |
Re: ORDER BY and LIMIT with SubSelects
|
| Список | pgsql-performance |
I need to get 200 sets of the most recent data from a table for further
processing, ordered by payDate. My
current solution is to use subselects to:
1 - get a list of unique data
2 - get the 200 most recent records (first 200 rows, sorted descending)
3 - sort them in ascending order
SELECT SSS.* FROM
(SELECT SS.* FROM
(SELECT DISTINCT ON (nonUniqField)
first, second, third, cost, payDate, nonUniqField
FROM histdata
WHERE userID = 19048 AND cost IS NOT NULL
)
SS
ORDER BY SS.payDate DESC LIMIT 200
) SSS
ORDER BY payDate;
My question is in regards to steps 2 and 3 above. Is there some way that
I can combine both steps into one to save some time?
PostgreSQL 7.4beta2 on i686-pc-linux-gnu, compiled by GCC 2.95.4
Thanks
Ron
В списке pgsql-performance по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера