Em 30-04-2013 15:34, Moisés P. Sena escreveu:
Boa tarde pessoal,

Tenho dados em uma tabela, e um campo de chave primaria que é um
TIMESTAMP e preciso calcular a média horária de uma coluna VALOR:

create table dados (
   datahora TIMESTAMP NOT NULL PRIMARY KEY,
   valor INT
);

Cada registro é inserido de 10 em 10 minutos, preciso mostrar a média de
cada hora.
Um intervalo de datas será definido posteriormente.

*EXEMPLO:*
*datahora | valor*
2013-01-01 00:00:00 | 1
2013-01-01 00:10:00 | 3
2013-01-01 00:20:00 | 2
2013-01-01 00:30:00 | 5
2013-01-01 00:40:00 | 7
2013-01-01 00:50:00 | 2
2013-01-01 00:00:00 | 4
2013-01-02 00:10:00 | 3
2013-01-02 00:20:00 | 2
2013-01-02 00:30:00 | 5
2013-01-02 00:40:00 | 3
2013-01-02 00:50:00 | 6

*Resultado esperado:*
2013-01-01 | 3.33
2013-01-02 | 3.83

Alguma sugestão de como fazer isso direto no Postgres?
Considerem que so tenho em maos o PSQL em um terminal Linux.

Bom, seu exemplo ficou com média de datas, mas se quiser fazer por hora:
SELECT datahora::date, extract (hour from datahora) as hora, avg(valor) FROM dados GROUP BY 1,2 ORDER BY 1,2;

Vê aí.
[]s


__________________________________
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: [email protected]
______________________________
FREE SOFTWARE SOLUTIONS
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a