SELECT category, orders_cnt, buyers_cnt, items_qty, revenue, avg_order_value, rank() over ( order by revenue desc, orders_cnt desc, category ) as rank_by_revenue FROM ( SELECT category, count(distinct t1.order_id) as orders_cnt, count(distinct buyer_id) as buyers_cnt, sum(qty) as items_qty, sum(qty * price) as revenue, ROUND(sum(qty * price) / count(distinct t1.order_id), 2) as avg_order_value FROM order_items t1 join orders t2 on t1.order_id = t2.order_id join product t3 on t1.product_id = t3.product_id where date_format(order_date, '%Y-%m') = '2024-08' group by category ) t order by revenue desc, orders_cnt desc, category