Giả sử SQL-Server (> =2005) hoặc Oracle (10g?):
WITH CTE AS
(
SELECT
ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Seq DESC) AS RN
, ID, Age
FROM
Persons
)
SELECT ID, Age
FROM CTE
WHERE RN = 1
ROW_NUMBER
trả về số thứ tự của một hàng trong một phân vùng của tập kết quả.
Chỉnh sửa :cũng hoạt động trong Oracle như bạn có thể thấy tại đây:http://sqlfiddle.com/#!4/b7e79/2/0