Bom dia Newton!

Vejo uma maneira genérica de se obter este relatório, mas precisará de uma
coluna auxiliar e um ajuste nos dados antes de cada execução. Minha sugestão
é a seguinte:

   1. Criar uma coluna bh_dthr_piso que armazenará o maior valor de data,
   múltiplo do intervalo requisitado e menor que bh_dthr;
   2. Executar uma função antes do relatório que atualize a
   coluna bh_dthr_piso com o devido valor (como mostrado em [A] para um
   intervalo de 3 minutos);
   3. Neste ponto seus dados estarão agrupados dentro do intervalo
   requisitado, bastando executar seu SELECT agrupado por bh_dthr_piso e não
   mais necessitando dos EXTRACTS.

[A]
bh_dthr; bh_dthr_piso;valor
"2010-01-08 20:00:20-03";"2010-01-08 20:00:00-03";77.477
"2010-01-08 20:01:10-03";"2010-01-08 20:00:00-03";81.0406
"2010-01-08 20:01:50-03";"2010-01-08 20:00:00-03";78.1369
"2010-01-08 20:02:20-03";"2010-01-08 20:00:00-03";77.8729
"2010-01-08 20:03:20-03";"2010-01-08 20:03:00-03";76.685
"2010-01-08 20:03:50-03";"2010-01-08 20:03:00-03";73.6493
"2010-01-08 20:04:20-03";"2010-01-08 20:03:00-03";76.0251
"2010-01-08 20:05:00-03";"2010-01-08 20:03:00-03";75.2332
"2010-01-08 20:05:40-03";"2010-01-08 20:03:00-03";71.0095
"2010-01-08 20:06:20-03";"2010-01-08 20:06:00-03";74.9692
"2010-01-08 20:06:50-03";"2010-01-08 20:06:00-03";73.1214
"2010-01-08 20:07:30-03";"2010-01-08 20:06:00-03";73.5173
"2010-01-08 20:08:00-03";"2010-01-08 20:06:00-03";74.9692
"2010-01-08 20:08:30-03";"2010-01-08 20:06:00-03";75.3652
"2010-01-08 20:09:00-03";"2010-01-08 20:09:00-03";74.4412

Apesar de ser genérica esta solução pode ser pesada dependendo da massa de
dados e/ou hardware. Caso não precise do relatório sobre toda a massa de
dados, mas sim de um subconjunto dela, pense na possibilidade de gerar uma
tabela temporária com tais valores ao invés de ficar atualizando sua tabela
original.

Espero ter ajudado.

-- 
Leandro Cavalari Soares
Analista de Sistemas / DBA
Veltrac - Tecnologia em Logística
(43) 2105-5614 / (43) 9922-8095 - Londrina / PR
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a