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
Post a Comment