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