select order_id, customer_name, order_date
from (
    select o.order_id, c.customer_name, o.order_date,
           row_number() over(partition by c.customer_id order by o.order_date desc) as rk
    from orders o
    join customers c on c.customer_id = o.customer_id
) t1
where rk = 1;


窗口函数不能和where同时使用

group by是聚合函数 只保留一条数据

partition by是「逻辑分区」,会把数据按指定字段分成多个 “逻辑组”,但不会压缩记录。