with t as (
    select customer_id, max(order_date) as latest_date
    from orders
    group by customer_id
)
select order_id, customer_name, order_date
from orders a join customers b on a.customer_id=b.customer_id
where (a.customer_id, order_date) in (select * from t)
order by customer_name