select
    customer_id,
    customer_name,
    product_name as latest_order
from
    (
        select
            o.customer_id,
            c.customer_name,
            p.product_name,
            row_number() over (
                partition by
                    c.customer_name
                order by
                    o.order_date desc
            ) rk
        from
            orders o
            join customers c on o.customer_id = c.customer_id
            join products p on o.product_id = p.product_id
    ) tt
where
    rk = 1
order by
    customer_id;