获取每个案例的最大值([操作日期])的结果

anauzrmj  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(228)

在以下情况下,我希望得到您的帮助:
我有三列 [Case] , [Action Date] , [Person ID] 我想得到最大值 [Action Date] 对于每个 Case 与相关的 [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]

我试着用subselect编写它,但是代码变得完全混乱。
非常感谢你的帮助!

kgqe7b3p

kgqe7b3p1#

使用 ROW_NUMBER() 窗口功能:

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

相关问题