sql >> Base de Datos >  >> RDS >> Mysql

Mysql recursivo restando y multiplicando valores agrupados

Interesante pregunta. Desafortunadamente MYSQL no admite recursive queries , por lo que deberá ser un poco creativo aquí. Algo como esto podría funcionar:

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