Em 28 de março de 2010 11:16, Saulo Venâncio <[email protected]> escreveu: > 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.
Daria para você tentar explicar melhor o que quer dizer com essa frase? Se possível com um exemplo. > 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 ; Como no parágrafo anterior você fala "intervalo de tempo entre 01 de dezembro a 11 de janeiro" não deveria ser: BETWEEN '2001-12-01'::date AND '2002-01-11'::date ? Ou, quem sabe: extract(year from data) BETWEEN 2001 AND 2002 AND (to_char(data,'MMDD') BETWEEN '1201' AND to_char(data,'MMDD') BETWEEN '0111') ou algo parecido. Quando você fala "hora" você quer dizer um determinado instante ou um intervalo (por ex. entre 01:00:00 e 01:59:59)? > não dá certo pq ele agrupa por data individual e unica, e acaba fazendo da > temperatura do proprio dia. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
