每个案例使用 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
以下情况我想得到您的帮助:
我有三列 [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