sql >> Database teknologi >  >> RDS >> Mysql

Sum værdierne af en kolonne baseret på en gruppe værdier fra en anden kolonne

Da mysql ikke understøtter vinduesfunktioner, er vi nødt til at oprette vores egen grupperangering til din tabel og derefter en anden forespørgsel for at arbejde på resultaterne.

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

demo her




  1. Få kun optegnelser oprettet i dag i laravel

  2. Gruppér efter måned i Oracle

  3. Hvordan RTRIM_ORACLE() virker i MariaDB

  4. Godkendelsespluginfejl under forbindelse til MySQL-database