[Dica] Coluna de Total Acumulado

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Vejam esse sql - mostra o total acumulado da coluna! (sem usar função analítica)

Selecionar tudo

SELECT 
  B.SAL
, SUM(A.SAL) ACUMULADO
FROM 
  EMP A
, EMP B
WHERE A.ROWID <= B.ROWID
GROUP BY B.ROWID, B.SAL
Aí vai um exemplo:

Selecionar tudo

SQL> SELECT 
  2    B.SAL
  3  , SUM(A.SAL) ACUMULADO
  4  FROM 
  5    EMP A
  6  , EMP B
  7  WHERE A.ROWID <= B.ROWID
  8  GROUP BY B.ROWID, B.SAL
  9  /

       SAL  ACUMULADO
---------- ----------
       800        800
      1600       2400
      1250       3650
      2975       6625
      1250       7875
      2850      10725
      2450      13175
      3000      16175
      5000      21175
      1500      22675
      1100      23775
       950      24725
      3000      27725
      1300      29025
                29025

15 rows selected.

SQL> 
Editado pela última vez por dr_gori em Qui, 15 Set 2005 11:48 am, em um total de 1 vez.
Avatar do usuário
leobbg
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 22
Registrado em: Sex, 29 Out 2004 10:25 am
Localização: PORTO ALEGRE - RS
Leo BBG Consultor Oracle

Só para quem gostar de inventar moda.. mas quem não gosta?? Complicando ou descomplicando.. ai vai mais uma função analitica bem bacana... que tem o mesmo efeito.

Selecionar tudo

SELECT A.SAL
,      SUM( A.SAL ) OVER( ORDER BY A.SAL ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) ACUMULADO
FROM   EMP A
GROUP BY A.SAL
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Majestic-12 [Bot] e 13 visitantes