Sim, com ABSOLUTA certeza vc não especificou adequadamente : como eu disse, GROUP BY transforma os n registros em um só, e para isso os valores distintos tem que ser agrupados também, seja somando, contando, calculando a média,mas o fato é que num GROUP BY os valores individuais são eliminados no grupo, não há como vc os acessar.... O que vc está diendo agora é que a sua necessidade é DIFERENTE, vc quer saber o valor inicial (o primeiro registro, ordenado por data) do grupo, o valor final do último registro do grupo (ainda ordenado por data) E fazer uma conta de menos com esses valores para saber o Crescimento... Aí é CLARO que o GROUP BY não serve para isso - quem ter a possibilidade de agrupar logicamente registros SEM eliminar valores não-chave de grupo são as funções analíticas.... Dá um look nas msgs recentes do grupo que tiveram algumas discussões/demonstrações e no site asktom vc acha diversos exemplos, como http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:122801500346829407#125077500346844087 ... []s Chiappa
--- Em oracle_br@yahoogrupos.com.br, Raphael Franco <phadba@...> escreveu > > Chiappa e Rodrigo, > > Acho que não me expressei bem. > > O que eu quero é a media de crescimento das tablespaces. > Ou seja, primeiro eu tenho que achar a diferença entre as 2 datas (quanto > cresceu ou diminuiu): > > > SYSAUX 27-MAY-13 553.13 > > SYSAUX 11-JUN-13 627.56 > > SYSAUX 25-JUN-13 604.88 > > > > 627,56 - 553,13 = aumentou 74 Mbytes de 27 de maio a 11 de junho. > 604,56 - 627,56 = diminuiu 19,68 Mbytes de 11 de junho a 25 de junho. > > Somaria os 2 resultados = 54,32 e divide por 2 (que equivale a cada 15 dias) > = 27,16 Mbytes > > > A media de crescimento da tablespace SYSAUX a cada 15 dias é de 27,16 Mbytes. > > > att. > Raphael > > > > > ________________________________ > De: J. Laurindo Chiappa <jlchiappa@...> > Para: oracle_br@yahoogrupos.com.br > Enviadas: Quarta-feira, 26 de Junho de 2013 19:13 > Assunto: [oracle_br] Re: Ajuda SQL > > > > > Pelo que entendi, o que vc quer é montar um Grupo de registros com > NOME_TABLESPACE como chave de grupo, nesse grupo vc terá N registros > agrupados/transformados em um só (é o que o GROUP BY faz) , e para cada > conjunto de registros vc quer calcular a média : sendo isso mesmo, é afaik um > simples caso de : > > SELECT NOME_TABLESPACE, AVG(TOTAL_USADO) FROM TESTE > GROUP BY NOME_TABLESPACE; > > okdoc ?? Ia ficar mais complexo se vc quisesse se referenciar a algum dos > valores dos registros que foram agrupados (digamos, além média do do Grupo vc > quer saber/quer exibir na query qual foi a menor e a maior data, digamos - > isso vc não faz com GROUP BY, ele "ensanduicha" os N registros > transformando-os num só, vc perde os detalhes)), mas como não é o caso (vc só > quer saber a média do grupo, não importando nem data nem qtdade de registros > agrupados), é bem simples... > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br, Raphael Franco <phadba@> escreveu > > > > Pessoal, > > > > Como estou meio enferrujado no SQL, poderiam me ajudar > > > > > > Tenho a seguinte tabela: > > > > SQL> select * from teste; > > > > NOME_TABLESPACE DATA TOTAL_USADO > > ------------------ --------- ----------- > > SYSAUX 27-MAY-13 553.13 > > SYSAUX 11-JUN-13 627.56 > > SYSAUX 25-JUN-13 604.88 > > SYSTEM 27-MAY-13 450.94 > > SYSTEM 11-JUN-13 459.94 > > SYSTEM 25-JUN-13 459.94 > > USERS 27-MAY-13 155.94 > > USERS 11-JUN-13 193.56 > > USERS 25-JUN-13 226 > > > > > > > > > > Gostaria de calcular a media de crescimento (Total_Usado) entre as datas. > > > > > > POr exemplo: > > > > SYSAUX 627,13 - 553,13 = 74,00 > > 604,88 - 627,56 = -19,68 > > > > Calcula a media do resultado = (74,00)+(-19,68) / 2 = 27,16 (media) > > > > > > > > Teria como fazer isso via SQL ou terei que usar um bloco PL mesmo. > > > > > > vlws > > > > Raphael > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >