Mysql
 sql >> база данни >  >> RDS >> Mysql

Сумирайте стойностите на колона въз основа на група стойности от друга колона

Тъй като mysql няма поддръжка за прозоречни функции, трябва да създадем собствено групово класиране за вашата таблица и след това друга заявка, за да оперираме с резултатите.

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

демонстрация тук




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо тази актуализация на MySQL не работи?

  2. Как мога да използвам JOIN в израза UPDATE?

  3. Създайте множество MySQL таблици с помощта на PHP

  4. Лента за напредък на Bootstrap с MYSQL данни с помощта на PHP?

  5. Проблем при обвързването на имплодиран масив в подготвено изявление на mysql