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是「逻辑分区」,会把数据按指定字段分成多个 “逻辑组”,但不会压缩记录。



京公网安备 11010502036488号