Din fråga relaterar inte till dina exempeldata; men du verkar vilja ha aggregering och rangordning. I MySQL 8.0 skulle du göra:
select
row_number() over(order by count(*) desc) rn,
order_id,
count(*) items_in_order
from data
group by order_id
order by rn
Jag döpte den första kolumnen till rn
(för rang ):Jag hittar id
förvirrande här, eftersom du redan har en kolumn med det namnet i tabellen.
I tidigare versioner använder ett alternativ en sessionsvariabel istället för 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