我想这ROW_NUMBER
是您想要的:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY pay_time DESC) rn
FROM yourTable
)
SELECT id, user_id, pay_time
FROM cte
WHERE rn = 1;
执行此操作的老式方法是使用子查询联接,该子查询查找每个用户的最新支付时间:
SELECT t1.id, t1.user_id, t1.pay_time
FROM yourTable t1
INNER JOIN
(
SELECT user_id, MAX(pay_time) AS max_pay_time
FROM yourTable
GROUP BY user_id
) t2
ON t2.user_id = t1.user_id AND
t2.max_pay_time = t1.pay_time;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句