我目前有一个查询(Oracle查询将结果从链接服务器返回到SQL表),返回如下结果: -
PersonID | EncounterNo | Location
---------+-------------+-----------
123456 | 1 | London
123456 | 2 | Manchester
123456 | 3 | Glasgow
246810 | 1 | Liverpool
246810 | 2 | Newcastle
357911 | 1 | Edinburgh
357911 | 2 | Aberdeen
357911 | 3 | Dublin
我想为每个MAX
选择PersonID
值,因此输出结果如下: -
PersonID | EncounterNo | Location
---------+-------------+-------------
123456 | 3 | Glasgow
246810 | 2 | Newcastle
357911 | 3 | Dublin
答案 0 :(得分:3)
SELECT t.*
FROM table t
INNER JOIN (
SELECT t.PersonID, MAX(t.EncounterNo)
FROM table t
GROUP BY t.PersonID
) j
ON t1.PersonID = j.PersonID AND t.EncounterNo = j.EncounterNo
答案 1 :(得分:0)
SELECT YT.*
FROM YOUR_TABLE YT, (SELECT MAX(EncounterNo) MAX_No, PersonID PID
FROM YOUR_TABLE
GROUP BY PERSONID) AA
WHERE YT.PersonID = AA.PID AND YT.EncounterNo = AA.MAX_No;