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