with newest_order as (select c.customer_name, o.order_id, o.order_date, row_number() over(partition by o.customer_id order by o.order_date desc,o.order_id desc) as ranking from orders o left join customers c on o.customer_id=c.customer_id) select order_id, customer_name, order_date from newest_order where ranking=1 order by customer_name asc