Oracle : crear una suma acumulada

Para crear una suma acumulada usaremos las funciones analíticas de oracle. Un ejemplo completo

--creacion de la tabla
create table gastos(nombre varchar2(30),dia integer,gasto integer);
--inserción de datos de prueba
insert into gastos values('diego',1,10);
insert into gastos values('diego',2,20);
insert into gastos values('diego',3,30);
insert into gastos values('fede',1,5);
insert into gastos values('fede',2,20);
insert into gastos values('fede',3,10);

--agrupa por nombre, ordena por día
select nombre,dia,gasto, sum(gasto) over (partition by nombre order by dia desc rows unbounded preceding) sum_acu from gastos;
Con partition dividimos en grupos.
Con order by indicamos el campo de ordenación

Comentarios

Diego Gerena (SNIPERCAT) ha dicho que…
Exactamente lo que necesitaba jeje. pensé que no funcionaria por que no tiene el group By, pero al parecer el "over" lo remplaza...

De pronto le sirva este post, para que el código se vea más bonito :).


http://www.creandoweb.net/2012/04/resaltador-de-sintaxis.html
Diego ha dicho que…
Gracias snipercat por el enlace

Entradas populares de este blog

Compilar php 4.4 con ldap en centOs

Oracle : Tablas y objetos bloqueados