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
