我有一個資料庫,用于存盤游戲中的所有交易。(DB 的圖片)現在我想獲取每個玩家的最后一筆交易的價值。
我已經試過了
SELECT MAX(timestamp), value, account_id FROM transactions GROUP BY account_id;。在這里,我得到了正確的時間和 account_id,但不是正確的值。
是否可以僅使用 SQL 來解決此問題?
uj5u.com熱心網友回復:
在 MySQL 8 或更高版本中,您可以為此使用視窗函式:
with cte as (
select *, row_number() over (partition by account_id order by timestamp desc) as rn
from transactions
)
select *
from cte
where rn = 1
uj5u.com熱心網友回復:
select * from table
where id in (select MAX(id) from table group by account_id)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/474796.html
上一篇:零值合并函式有什么作用?
