SELECT
*
FROM
(
SELECT
ROW_NUMBER () OVER (
PARTITION BY user_uuid -- 使用用户id分组
ORDER BY
create_time DESC --按订单创建时间倒序
) AS rowNum ,*
FROM
t_order
) d
WHERE
rowNum = 1 --取每个分组中第一行
说明:
- 这里业务是查询订单表中每个用户最新的下单信息;
- ROW_NUMBER () OVER()函数为每一条记录增加在分组内的行号;
- 使用子查询获取每一分组内的第一条数据。