sql >> Database >  >> RDS >> Mysql

Som de waarden van een kolom op op basis van een groep waarden uit een andere kolom

Aangezien mysql geen ondersteuning biedt voor vensterfuncties, moeten we onze eigen groepsrangschikking voor uw tabel maken en vervolgens een andere query om de resultaten te bewerken.

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 hier




  1. Is het mogelijk om te bestellen op het totaal aantal van meerdere tafels?

  2. mysqli laatste invoeg-ID

  3. MySQL LOAD DATA INFILE gebruiken met niet-afdrukbare tekenscheidingstekens

  4. Meerdere Create Trigger-query in PDO