select t.order_id, t.customer_name, t.order_date from (select o.order_id, c.customer_name, 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 ) t where t.ranking=1