Fala Newton, blz... Cara... eu fiz um teste aqui e funcionou da seguinte forma:
--Somatório dos multiplos de 15 min select extract(hour from tempo), case floor(extract(minute from tempo)/15) -- esse calculo permite saber em qual parte da hora o minuto está when 0 then '0 - 14' when 1 then '15 - 29' when 2 then '30 - 44' when 3 then '45 - 59' end as precisao , sum(valor) from teste01 group by 1, 2 order by 1, 2 Dá uma adaptada pro seu caso e me dá um retorno se funcionou ou não blz? Este exemplo está com precisão de 15 minutos. Abraço a todos da lista, mas principalmente a meus vizinhos (sou piauiense - ê saudade!!!) maranhenses como o Newton. 2010/1/15 Newton Teixeira do Nascimento Júnior < [email protected]> > Olá, comunidade, preciso de ajuda com um SQL. > > Tenho uma tabela com a seguinte forma: > > > > CREATE TABLE bhpas_h_2009_02_02 > > ( > > bh_dthr timestamp with time zone, > > bh_chave integer, > > bh_variacao integer, > > valest real, > > valor real > > ) > > Os dados dessa tabela são inseridos em 10 e 10 segundos por um sistema > externo. > > Preciso gerar um relatório com as estatísticas mínimo,media e Maximo com os > valores do campo <valor> com uma precisão definida pelo usuário. > > Exemplo: quero saber as estatísticas com uma precisão de 5 minutos; com 10 > minutos, 15 minutos; 20 minutos; 30 minutos; 60 minutos; 120 minutos; etc > > > > Sei fazer o SQL por hora (60 minutos) e por minuto (01 minuto) com o > seguinte SQL (vide o SQL abaixo), mas são sei, por exemplo, com precisão de > 15 minutos, 05 minutos ou 30 minutos (precisão genérica em minutos). > > > > SELECT EXTRACT(MINUTE FROM Y.bh_dthr) as n, MIN(Y.valor), CAST(AVG(Y.valor) > as real), MAX(Y.valor) FROM PAS_R X, bhpas_h_2009_02_02 > > Y WHERE X.BH_CHAVE=Y.BH_CHAVE AND Y.BH_CHAVE = (SELECT BH_CHAVE FROM PAS_R > WHERE ID = <id_medida>' AND bh_dthr_fim IS NULL) GROUP BY EXTRACT(MINUTE > FROM Y.bh_dthr) ORDER BY n; > > > > SELECT EXTRACT(HOUR FROM Y.bh_dthr) as n, MIN(Y.valor), CAST(AVG(Y.valor) > as real), MAX(Y.valor) FROM PAS_R X, bhpas_h_2009_02_02 > > Y WHERE X.BH_CHAVE=Y.BH_CHAVE AND Y.BH_CHAVE = (SELECT BH_CHAVE FROM PAS_R > WHERE ID = <id_medida>' AND bh_dthr_fim IS NULL) GROUP BY EXTRACT(HOUR FROM > Y.bh_dthr) ORDER BY n; > > > > Eis dados dessa tabela em um dia entre as 20:00hs e 21:00hs para exemplo > (tirei algumas linhas pelo tamanho – só pra dar a ideia). Agradeço desde já > pela atenção e estou no aguardo online; > > > > SELECT DISTINCT Y.bh_dthr, Y.valor FROM PAS_R X, bhpas_h_2010_01_08 Y WHERE > X.BH_CHAVE=Y.BH_CHAVE AND > > Y.BH_CHAVE = (SELECT BH_CHAVE FROM PAS_R WHERE ID = 'LDCE201MQ' AND > bh_dthr_fim IS NULL) and Y.bh_dthr BETWEEN '2010-01-08 20:00:00' AND > '2010-01-08 21:00:00'; > > > > "2010-01-08 20:00:20-03";77.477 > > "2010-01-08 20:00:30-03";75.7611 > > "2010-01-08 20:01:10-03";81.0406 > > "2010-01-08 20:01:20-03";75.7611 > > "2010-01-08 20:01:30-03";76.949 > > "2010-01-08 20:01:50-03";78.1369 > > "2010-01-08 20:02:00-03";74.7052 > > "2010-01-08 20:02:20-03";77.8729 > > "2010-01-08 20:02:50-03";75.4971 > > "2010-01-08 20:03:20-03";76.685 > > "2010-01-08 20:03:30-03";74.8372 > > "2010-01-08 20:03:40-03";77.8729 > > "2010-01-08 20:03:50-03";73.6493 > > "2010-01-08 20:04:00-03";75.4971 > > "2010-01-08 20:04:10-03";79.1928 > > "2010-01-08 20:04:20-03";76.0251 > > "2010-01-08 20:04:40-03";76.1571 > > "2010-01-08 20:05:00-03";75.2332 > > "2010-01-08 20:05:10-03";72.7254 > > "2010-01-08 20:05:40-03";71.0095 > > "2010-01-08 20:05:50-03";76.4211 > > "2010-01-08 20:06:20-03";74.9692 > > "2010-01-08 20:06:50-03";73.1214 > > "2010-01-08 20:07:00-03";76.4211 > > "2010-01-08 20:07:30-03";73.5173 > > "2010-01-08 20:07:40-03";74.7052 > > "2010-01-08 20:07:50-03";69.4257 > > "2010-01-08 20:08:00-03";74.9692 > > "2010-01-08 20:08:10-03";80.3807 > > "2010-01-08 20:08:20-03";69.5577 > > "2010-01-08 20:08:30-03";75.3652 > > "2010-01-08 20:08:40-03";72.5934 > > "2010-01-08 20:08:50-03";77.8729 > > "2010-01-08 20:09:00-03";74.4412 > > "2010-01-08 20:09:10-03";75.7611 > > "2010-01-08 20:09:20-03";82.6245 > > "2010-01-08 20:09:30-03";77.345 > > "2010-01-08 20:09:40-03";72.0655 > > "2010-01-08 20:15:20-03";78.5329 > > "2010-01-08 20:15:30-03";73.1214 > > "2010-01-08 20:15:50-03";76.949 > > "2010-01-08 20:16:10-03";72.9894 > > "2010-01-08 20:16:20-03";78.2689 > > "2010-01-08 20:46:10-03";71.8015 > > "2010-01-08 20:46:20-03";68.5018 > > "2010-01-08 20:47:10-03";65.466 > > "2010-01-08 20:59:00-03";66.39 > > "2010-01-08 20:59:20-03";69.1617 > > "2010-01-08 20:59:40-03";65.0701 > > "2010-01-08 20:59:50-03";70.4816 > > "2010-01-08 21:00:00-03";64.9381 > > > > *Newton Teixeira do Nascimento Junior > Analista de Sistemas - CMAO > **Centrais Elétricas do Norte do Brasil S/A - Eletronorte > Av. dos Jequitibás, s/nº - Cohebe do Sacavém* > *São Luís-MA - 65043-380 > Tel: 3217-5006 / 81330104 > **e-mail: [email protected]* > > > > > Aviso: > "O emitente desta mensagem é responsável por seu conteúdo e endereçamento. > Cabe ao destinatário cuidar quanto ao tratamento adequado. Sem a devida > autorização, a divulgação, a reprodução, a distribuição ou qualquer outra > ação em desconformidade com as normas internas da ELETRONORTE S/A são > proibidas e passíveis de sanção disciplinar, cível e criminal. Esta mensagem > pode ser monitorada". > > > > > _______________________________________________ > 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
