SELECT 
    order_id,
    customer_name,
    order_date
FROM    
    (SELECT 
        o.order_id,
        c.customer_name,
        o.order_date,
        RANK() over (partition by c.customer_name ORDER BY o.order_date DESC) AS rk
    FROM
        orders o 
        JOIN customers c ON o.customer_id=c.customer_id
    ) AS t
WHERE
    rk=1



子查询里写的 o.order_id,在外层可以直接叫 order_id,前提是在子查询的 SELECT 中给它起了别名,或它原本就有别名/字段名。