Truy vấn của bạn không liên quan đến dữ liệu mẫu của bạn; tuy nhiên bạn dường như muốn tổng hợp và xếp hạng. Trong MySQL 8.0, bạn sẽ thực hiện:
select
row_number() over(order by count(*) desc) rn,
order_id,
count(*) items_in_order
from data
group by order_id
order by rn
Tôi đã đặt tên cho cột đầu tiên là rn
(cho thứ hạng ):Tôi tìm thấy id
khó hiểu ở đây, vì bạn đã có một cột có tên đó trong bảng.
Trong các phiên bản trước đó, một tùy chọn sử dụng biến phiên thay vì row_number()
:
select @rn := @rn + 1 rn, order_id, items_in_order
from (
select order_id, count(*) items_in_order
from data
group by order_id
order by items_in_order desc
) t
cross join (select @rn := 0) r
order by items_in_order desc