假设我有这张 table 。
users|amount
------------
User1| 500
User1| 400
User1| 300
User1| 200
User1| 100
User2| 500
User2| 400
User2| 300
User2| 200
User3| 300
User3| 200
我想为每个用户最多显示 3 笔交易。示例中给出的结果应该是这样的。
users|amount
------------
User1| 500
User1| 400
User1| 300
User2| 500
User2| 400
User2| 300
User3| 300
User3| 200
有没有办法在 SQL (MySQL) 中做到这一点?我应该采取什么步骤?
最佳答案
你可以这样尝试
SELECT
users, amount
FROM (SELECT
users, amount,
ROW_NUMBER() OVER (PARTITION BY users ORDER BY amount DESC) AS rn
FROM yourtable) AS a
WHERE a.rn <= 3
关于mysql - 每个用户最多显示3笔交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39703297/