WITH order_last AS( SELECT order_id,customer_id, order_date, rank() over (partition by customer_id order by order_date DESC) AS rk FROM orders ) SELECT a.order_id, b.customer_name, a.order_date FROM order_last AS a LEFT JOIN customers AS b ON a.customer_id=b.customer_id WHERE a.rk=1;