select 
  c.order_id,
  c.customer_name,
  c.order_date
from
  (
    select 
      a.order_id,
      b. customer_name,
      a.order_date,
      row_number() over(partition by a.customer_id order by a.order_date desc) as rank_order_date
    from 
      orders as a
    join 
      customers as b
    on 
      a.customer_id=b.customer_id
  ) as c
where 
  c.rank_order_date=1