每个案例使用 MAX([Action Date]) 获取结果

Get results with MAX([Action Date]) per Cases

以下情况我想得到您的帮助:

我有三列 [Case][Action Date][Person ID],我想获得每个 Case 的最大值 [Action Date] 以及相关的 [Person ID]

如您所见,Case 的结果相同,但 [Action Date][Person ID] 不同,我想取回 MAX([Action Date]) (17-04-2020) 和相关的 [Person ID].

select 
   [Case], 
   MAX([Action Date]) as 'Last Parking Date',
   [Person ID]
from SOURCE_TABLE 
group by 
   [Case], 
   MAX([Action Date]) as 'Last Parking Date',
   [Person ID]

我尝试用子选择来编写它,但代码变得完全混乱。

非常感谢您的帮助!

使用ROW_NUMBER()window函数:

SELECT [Case], [Person ID], [Action Date] AS [Last Parking Date]
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY [Case] ORDER BY [Action Date] DESC) rn
  FROM SOURCE_TABLE 
) t
WHERE rn = 1