ROW_NUMBER() OVER (PARTITION BY 分组字段 ORDER BY 排序字段 DESC)
第一种无分组的时间排序
SELECT ROW_NUMBER() OVER ( ORDER BY created_on DESC) AS rn, t.id FROM t_test t
第二种分组排序根据id分组根据时间排序
SELECT ROW_NUMBER() OVER (PARTITION BY id ORDER BY created_on DESC) AS rn, t.* FROM t_test t
实际用例
找出每个订单最近一次下单的时间
SELECT order_id, created_on
FROM (
SELECT order_id, created_on,
ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY created_on DESC) AS rn
FROM t_test
) AS subquery
WHERE rn = 1