Store the sum instead of the amount, then if you need the amount just use this amount(0) = sum(0) amount(t_i) = sum(t_i) - sum(t_(i-1))
This way, if you need to select all amount it only takes O(n). Insert/delete/update takes longer but you select more often than youi insert/delete/update. On 7/20/06, Michael Sizaki <[EMAIL PROTECTED]> wrote:
Hi, Suppose I have a database: CREATE TABLE data (timestamp INTEGER, amount INTEGER); INSERT INTO data VALUES(1,10); INSERT INTO data VALUES(2,20); INSERT INTO data VALUES(3,5); INSERT INTO data VALUES(4,2); ... Now I want to see the sum up to the timestamp: SELECT timestamp,(SELECT sum(amount) FROM data as d WHERE d.timestamp<=data.timestamp) FROM data ORDER BY timestamp; This works fine for small data sets. But it is obviously a quadratic problem. Is there a more efficient way to do the same thing? Michael
-- Julien