在不同日期的“文件名”列中有重复的文件名记录。我需要选择文件名的最大-行号及其对应的日期。
with cte as
(
select [FileName], ProcessDate,
ROW_NUMBER() over (partition by [FileName] order by [FileName]) RowNumber
from StagingTable
)
select * from cte
order by rownumber desc
答案 0 :(得分:1)
这不是要解决您的问题,但我想这就是您想要的。这将为您提供带有一个SELECT的最后一个ProcessDate:
SELECT
[FileName]
,MAX (ProcessDate) AS LastProcessDate
,COUNT (*) FileNameOccurence
FROM StagingTable
GROUP BY [FileName]
如果是这样,请不要使嵌套查询变得更加复杂。
答案 1 :(得分:0)
with cte as
(
select [FileName], ProcessDate,
ROW_NUMBER() over (partition by [FileName] order by [FileName] desc) RowNumber
from StagingTable
)
select * from cte
where RowNumber = 1
答案 2 :(得分:0)
假设您实际上想要的是最新的文件,其中有多个具有相同文件名的文件-您不一定需要CTE-子查询就可以了
select *
from(
select [FileName], ProcessDate, ROW_NUMBER() over (partition by [FileName] order by
ProcessDate desc) RN
from StagingTable
)files
where RN = 1