Em 07-12-2015 20:37, Eduardo Az - EMBRASIS escreveu:
tenho o seguinte caso:

SELECT     dt, porcentagem
FROM        indices_igpm
ORDER BY dt DESC
LIMIT         12


ao ser executado, tenho o seguinte resultado:
dt;porcentagem
"2015-11-01";1.52000
"2015-10-01";1.89000
"2015-09-01";0.95000
"2015-08-01";0.28000
"2015-07-01";0.69000
"2015-06-01";0.67000
"2015-05-01";0.41000
"2015-04-01";1.17000
"2015-03-01";0.98000
"2015-02-01";0.27000
"2015-01-01";0.76000
"2014-12-01";0.62000

porém, gostaria que o resultado fosse assim:

"2014-12-01";0.62000
"2015-01-01";0.76000
"2015-02-01";0.27000
"2015-03-01";0.98000
"2015-04-01";1.17000
"2015-05-01";0.41000
"2015-06-01";0.67000
"2015-07-01";0.69000
"2015-08-01";0.28000
"2015-09-01";0.95000
"2015-10-01";1.89000
"2015-11-01";1.52000

ou seja, em uma consulta aonde quero os 12 últimos registros, a ordem
tem que ser crescente.
Verifiquei pessoal usando OFFSET, mas também vi que pode ser custoso ao BD.
Se não estou enganado, no passado teve esta mesma pergunta, mas, não
achei no histórico.

Qual melhor solução.

Eu faria uma CTE:
WITH consulta AS (
SELECT     dt, porcentagem
FROM        indices_igpm
ORDER BY dt DESC
LIMIT         12
)
SELECT dt, porcentagem FROM consulta ORDER BY dt;

Válido em 8.4+

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a