Oto metoda tworzenia całkowitej sumy bez nieskuteczności zsumowania wszystkich poprzednich wierszy. (Wiem, że to pytanie ma 6 lat, ale jest to jeden z pierwszych wpisów google SQLite sumie jezdnego.)
create table t1 (value integer, accumulated integer, id integer primary key);
insert into t1 (value) values (1);
insert into t1 (value) values (3);
insert into t1 (value) values (13);
insert into t1 (value) values (1);
insert into t1 (value) values (5);
UPDATE
t1
SET
accumulated = ifnull(
(
SELECT
ifnull(accumulated,0)
FROM
t1 ROWPRIOR
WHERE
ROWPRIOR.id = (t1.id -1)),0) + value;
.headers on
select * from t1;
value|accumulated|id
1|1|1
3|4|2
13|17|3
1|18|4
5|23|5
ten powinien być uruchamiany tylko raz po zaimportowaniu wszystkich wartości. Lub ustaw zbiorczą kolumnę na wszystkie wartości null przed ponownym uruchomieniem.
Gdyby działał na stole bez id do zamawiania (lub zamawiania po innym kryterium, bez możliwości ścisłego
moala
Możesz to zrobić za pomocą zapytania analitycznego kiedy korzystasz z Oracle, nie ma potrzeby samodzielnego łączenia, patrz http://www.orafaq.com/node/55. Niestety sqlte nie obsługuje zapytań analitycznych. – TTT