Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tính tổng các giá trị của một cột dựa trên một nhóm giá trị từ một cột khác

Vì mysql không hỗ trợ các chức năng cửa sổ, chúng tôi phải tạo xếp hạng nhóm của riêng mình cho bảng của bạn và sau đó là một truy vấn khác để hoạt động trên kết quả.

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 tại đây




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đạt kết quả cao nhất trong THAM GIA

  2. mysqldump với mệnh đề --where không hoạt động

  3. Lỗi với MySql khi thực hiện Cài đặt gói

  4. Có ổn không khi có nhiều DAO?

  5. Sử dụng Ruby on Rails và SSH để truy cập cơ sở dữ liệu MySQL từ xa trên máy chủ từ xa