Saulo,

Se eu entendi bem o que você falou retirar a data da select list e da
clausula de group by  deve funcionar. A sua consulta deve ficar assim:

select hora,avg(temperaturaambiente)  from medidas where (
hora > '00:01' and hora < '23:59')  and  ((data between '2001-12-30' and
'2002-0
1-02' ) or (data between '2002-12-30' and '2002-01-02')) and id_ponto=228
group
by hora;
Olhando mais uma vez seu select e imaginando os dados que você tem na tabela
não vejo necessidade do trecho (
hora > '00:01' and hora < '23:59') da sua consulta, considerando que todos
os horarios obrigatoriamente devem estar nesse intervalo, exceto o '00:00',
o '00:01' e o '23:59' ,certo?

Um outro ponto é o trecho (data between '2002-12-30' and '2002-01-02') que
não tem efetividade alguma já que não existe data maior ou igual a
30/12/2002 que seja menor ou igual a 02/01/2002.

Então, minha sugestão é que você teste a seguinte consulta e veja se os
dados retornados são os que você espera:

 select hora, avg(temperaturaambiente) as media from medidas where (data
between '2001-12-30' and '2002-01-02' ) and id_ponto=228 group by hora;
Abraços,

Candido Vieira


2010/3/28 Saulo Venâncio <[email protected]>

> Olá amigos,
> Gostaria de uma ajudinha, se fosse possível.
> Tenho uma tabela assim:, com muitos dados.
>
>      data    |   hora   |         temperaturaambiente
> ------------+----------+---------------------
>  2002-01-01 | 00:30:00 | 23.80
>  2002-01-02 | 16:30:00 | 31.80
>
> o que preciso fazer é um select que pegue a média dos dados de um
> determinado periodo de tempo, por exemplo,
> quero a média da termperaturaambiente  do intervalo de tempo entre 01 de
> dezembro a 11 de janeiro  de cada pedaço de horário (00:30, 01:30, etc) de
> todos os anos que tenho banco de dados.
> olha so o que tentei, mas nao deu:
>
>  estacoesonline=# select data,hora,avg(temperaturaambiente)  from medidas
> where (
> hora > '00:01' and hora < '23:59')  and  ((data between '2001-12-30' and
> '2002-0
> 1-02' ) or (data between '2002-12-30' and '2002-01-02')) and id_ponto=228
> group
> by data, hora ;
>
> não dá certo pq ele agrupa por data individual e unica, e acaba fazendo da
> temperatura do proprio dia.
>
> Obrigado pela ajuda pessoal.
> Conto com voces.
>
> Saulo B. M.  Venâncio
> -----
> Graduando em Engenharia Controle e Automação
> Técnologo de Processos Gerenciais
> -----
>
>
>
> Em 27 de março de 2010 23:11, Angelo Augusto Frozza (*UNIPLAC) <
> [email protected]> escreveu:
>
>>  Olá,
>>
>> Alguem sabe algum site onde é possível baixar bancos com dados para testes
>> no PostgreSQL.
>>
>> {}s,
>>
>> ---
>> Prof. Angelo Augusto Frozza, M.Sc.
>> [email protected]
>> http://uniplac.net/~frozza
>> Coordenador do Curso de Sistemas de Informação
>> Universidade do Planalto Catarinense - UNIPLAC
>> Lages - S.C. - Brasil
>> http://www.uniplac.net
>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a