Em 30 de abril de 2013 15:45, Danilo Silva <[email protected]>escreveu:

>
> Em 30 de abril de 2013 15:34, 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.
>>
>>
>> Acho que seria algo como SELECT  datahora, AVG(valor) FROM tabela GROUP
> BY datahoraORDER BY datahor;
>
> []s
> Danilo
>

Putz, falha nostra, esqueci que o campo *datahora* contém justamente a data
e a hora, logo o group by fica sem sentido e não terás o resultado
desejado, siga o exemplo que o Flavio passou, está correto.

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

Responder a