Em 30/04/13, Moisés P. Sena<[email protected]> 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.
>


SELECT date_trunc('hour', datahora), avg(valor) FROM dados GROUP BY 1
ORDER BY 1;

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

Responder a