Mysql
 sql >> Base de données >  >> RDS >> Mysql

Additionner les valeurs d'une colonne en fonction d'un groupe de valeurs d'une autre colonne

Étant donné que mysql ne prend pas en charge les fonctions de fenêtrage, nous devons créer notre propre classement de groupe pour votre table, puis une autre requête pour opérer sur les résultats.

select if(count(transaction) = 1, transaction, concat(min(transaction), '-', max(transaction))) transactions, sum(price) price 
  from (
    select if(`transaction` = @prev + 1, 
         if(@prev := `transaction`, @rank, @rank),
           if(@prev := `transaction`, @rank := @rank + 1, @rank := @rank + 1)
       ) gr,
       `transaction`,
       price
    from table1, (select @rank := 1, @prev := 0) q
    order by `transaction` asc
  ) q     
  group by gr

démo ici