Câu hỏi thú vị. Rất tiếc, MYSQL
không hỗ trợ recursive queries
, vì vậy bạn sẽ cần phải sáng tạo một chút ở đây. Một cái gì đó như thế này có thể hoạt động:
select flag,
sum(calc)
from (
select flag,
(num-if(@prevflag=flag,@prevnum,0))*val calc,
@prevnum:=num prevnum,
@prevflag:=flag prevflag
from yourtable
join (select @prevnum := 0, @prevflag := 0) t
order by flag
) t
group by flag