mysql - Select row where SUM becomes greater than X -


i have table

---------------- id    | duration  ---------------- 1       10        2       10       3       10        

i want select id sum(duration) becomes greater 15. in other words...

------------------------- id    | duration | sum ------------------------- 1       10         10 2       10         20 3       10         30 

sum becomes grater @ row id 2. have select row.

of course can't use sum() stored procedure sure have use join , having instead of where. problem wrong result.

to this, need cumulative sum, mysql not offer directly. can subquery. select right row.

select id, duration, cumdur (select id, duration,              (select sum(duration)               t t2               t2.duration < t.duration or                     (t2.duration = t.duration , t2.id <= t.id)              ) cumdur       t      ) t 15 between (cumdur - duration + 1) , cumdur 

note orders id when multiple rows have same duration.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -