我正在尝试将最新记录返回到数据库中的每个recordId。 我有一个存储通知的表,每个通知都有自己的ID,但它们与一个personId相关联。 但是此人ID可以有多个通知。我想要做的是只检索通知表上每个personId的最后一个通知。
例如,我可以拥有多个personIds,每个personId可以有很多通知,但每个personId应该只返回最后创建的通知(PS我为每个新通知保存时间戳)
到目前为止我想出的是:
SELECT *
FROM Notification
WHERE notificationEndDate <= '20151101'
AND
person_id IN
(
SELECT MAX(notificationEndDate )
FROM Notification
)
查询运行但看起来我丢失了它。 任何人都可以建议我如何实现它?
答案 0 :(得分:2)
如果不存在具有相同personId的后续行,则返回一行。
SigalR
答案 1 :(得分:0)
试试这个
WITH CTE1 AS(
SELECT *, ROW_NUMBER() OVER(PARTITION BY person_id ORDER BY per_visa_ed
DESC) AS Row_COUNT
FROM TPER_VISA
)
SELECT * FROM CTE1 WHERE Row_COUNT = 1