我在表中有多条记录,除了创建记录的数据外,有时会有重复的条目。
我必须在重复记录之间进行选择并更改具有最新日期的一个字段(最后一个要创建的字段)。
目前我通过目视检查日期手动完成此操作。
这是一种只能带回其中一个副本的方式,即今天最接近的那个副本吗?
下面是一个查询,它为一个stationID带回两组重复项。每种评估类型应该只有一条记录。对于底部的两条记录,isLive列将更改为True,因为它们具有最新的Filedate记录。
SELECT StationFileID
,StationID
,AssessmentType
,URL
,FileDate
,isLive
,StationObjectID
FROM StationFiles
WHERE StationID = '1066'
ORDER BY StationID;
答案 0 :(得分:2)
您可以使用ROW_NUMBER()
功能识别最新的行:
SELECT *
,CASE WHEN N = 1 THEN 'True'
ELSE 'False' END AS isLive
FROM (SELECT StationFileID
,StationID
,AssessmentType
,FileDate
,ROW_NUMBER() OVER (PARTITION BY StationID, AssessmentType ORDER BY FileDate DESC) AS N
FROM StationFiles
WHERE StationID = '1066') AS T