Pode muito bem ser , mas como o colega lá citou que queria usar o SUM como uma 
função de grupo E como uma analisadora, de cara Imaginei que era Exigido o 
GROUP BY, transformando o SUM numa função de grupo propriamente dita... Mas 
realmente, se agrupar uma Partição de registros ao invés de agrupar "hard", via 
GROUP BY, aí não tem impedância, o grupo não vai "fundir" registros, vc terá os 
detalhes, aí ANALYTICS podem atuar em cima disso ...

 Pode ser isso, Emerson, ou a tua lógica EXIGE um GROUP BY ?

[]s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Alencar <alencarboito@...> escreveu
>
> Bom Dia Chiappa e Émerson,
> 
> uma solução para esse caso pode ser utilizando  PARTITION BY.
> Tomando como base o exemplo citado pelo Chiappa, podemos retornar o o
> salário de cada funcionário e uma coluna com o salário acumulando por
> estado. Neste caso, o query_partition_clause, que define a partição a ser
> avaliada, é informado o campo estado.
> 
> O select fica da seguinte forma:
> select estado
>      , nome
>  , salario
>  , sum(salario) OVER (PARTITION BY estado ORDER BY estado desc ROWS
> UNBOUNDED PRECEDING) acumulado_por_estado
>   from empregados
> 
> E o resultado é mais ou menos esse:
> ESTADO    NOME    SALÁRIO   ACUMULADO_POR_ESTADO
> ------    ----    -------   ---------------
> São Paulo joão    R$ 10,00   R$ 10,00
> São Paulo zé      R$ 15,00   R$ 25,00
> Rio       Luis    R$ 5,00    R$ 5,00
> Rio       mané    R$ 8,00    R$ 13,00
> 
> 
> Abraços!
> Alencar
> 
> 
> 
> Em 17 de outubro de 2013 10:20, J. Laurindo Chiappa
> <jlchiappa@...>escreveu:
> 
> > **
> >
> >
> > Dia... Eu ** duvido **, colega : veja vc, a função analítica faz uma
> > soma/contagem/operação em cima de CADA linha lida com uma determinada
> > ordem, enquanto as funções de grupo 9que EXIGEM um GROUP BY) *** JUNTAM ***
> > múltiplas linhas em uma só.... Logicamente falando, é algo assim :
> >
> > => agrupamento feito com analytics da soma de salários por região :
> >
> > 1 São Paulo joão R$ 10,00
> > 1 São Paulo zé R$ 15,00
> > --------
> > R$ 25,00
> >
> > 2 Rio Luis R$ 5,00
> > 2 Rio mané R$ 8,00
> > --------
> > 13,00
> >
> > OU SEJA, analytics basicamente ORDENAM o resultset por uma determinada
> > chave (que seria a região no meu "exemplo"), formando grupos mas SEM
> > interferir nos registros em princípio, e quando a chave muda ele considera
> > um fim de grupo... Já a função de grupo (com GROUP BY na chave região) me
> > retornaria :
> >
> > 1 São Paulo R$ 25,00
> >
> > 2 Rio R$ 13,00
> >
> > OU SEJA , GROUP BY (que é o que a função de grupo exige) logicamente
> > faland lêem os registros que obedecem á chave e TRANSFORMAM , JUNTAM,
> > FUNDEM esses N registros em um só, somando/contando/dando a
> > média/mínimo/máximo/whatever de um valor, MAS os detalhes de cada registro
> > vc perdeu, eles foram logicamente ENSANDUICHADOS, JUNTADOS, COLADOS, okdoc
> > ??
> >
> > No máximo o que vc poderia fazer é alguma sub-querie, tipo :
> >
> > SELECT colunas, SUM(coluna) FROM (select que lê dados e ordena/agrupa via
> > analytics)
> > GROUP BY algimacoluna;
> >
> > isso é possível, mas NA MESMA QUERY ter analytics (que lê linha a linha) E
> > função de grupo (que destrói, cola, mergeia as linhas) ao mesmo tempo acho
> > difícil, são coisas meio antagônicas, né ?
> >
> > []s
> >
> > Chiappa
> >
> > --- Em oracle_br@yahoogrupos.com.br, Emerson Sanches <emerson.sanches@>
> > escreveu
> > >
> > > Bom dia pessoal da lista, estou tentando usar a função SUM como função
> > > agregada e como função analítica ao mesmo tempo, na mesma select e esta
> > > retornando um erro, é possível fazer isso?
> > >
> > > Obrigado pela atenção
> > >
> > >
> > > Emerson Sanches
> > > Analista de Sistemas
> > >
> >
> >  
> >
>


Responder a