我有一张桌子WorkLog(personId number, actionType number, doneOn timeStamp),现在我怎么能得到每个人的最新动作.
数据会像
p1 a1 timestamp1
p1 a2 timestamp2
p2 a1 timestamp3
p2 a3 timestamp4
p3 a1 timestamp5
Run Code Online (Sandbox Code Playgroud)
输出应该是
p1 a2 timestamp2
p2 a1 timestamp3
p3 a1 timestamp5
Run Code Online (Sandbox Code Playgroud)
数据库是DB2
这是"每组最大的n"查询.根据这里,下面应该在DB2中工作
WITH T AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY personId ORDER BY doneOn DESC) RN
FROM WorkLog
)
SELECT personId , actionType , doneOn
FROM T
WHERE RN=1
Run Code Online (Sandbox Code Playgroud)