获取每个分组的最新记录
如果你想要的是每个分组(比如按客户ID分组)的最新记录,那么你可以使用窗口函数(如ROW_NUMBER()
)来实现:
SELECT * FROM (SELECT o.*,ROW_NUMBER() OVER(PARTITION BY customer_id ORDER BY order_date DESC) AS rnFROM orders o
) WHERE rn = 1;
这个查询为每个customer_id
分组内的记录按照order_date
降序排列,并使用ROW_NUMBER()
为每个分组内的记录分配一个唯一的序号(在分组内最新的记录序号为1)。然后,外层查询通过WHERE rn = 1
来选择每个分组内序号为1的记录,即每个客户的最新订单记录。