小编典典

在特定日期的最大日期返回值

sql

这是我的SQL Server表

ID       Date       Value 
___      ____       _____
3241     9/17/12    5
3241     9/16/12    100
3241     9/15/12    20
4355     9/16/12    12
4355     9/15/12    132
4355     9/14/12    4
1234     9/16/12    45
2236     9/15/12    128
2236     9/14/12    323
2002     9/17/12    45

这似乎很容易做到,但我不知道为什么会被卡住。我只想为每个id选择max(date)和该max(date)处的值。我想忽略相对于每个ID而言不是max(date)的所有其他日期。

这是我希望表格看起来像的样子:

ID       Date       Value 
___      ____       _____
3241     9/17/12    5
4355     9/16/12    12
1234     9/16/12    45
2236     9/15/12    128
2002     9/17/12    45

我尝试通过使用max(date)进行分组,但没有进行任何分组。我不确定自己在做什么错。在此先感谢您的帮助!


阅读 198

收藏
2021-03-23

共1个答案

小编典典

您可以使用以下内容:

select t1.id, t2.mxdate, t1.value
from yourtable t1
inner join
(
  select max(date) mxdate, id
  from yourtable
  group by id
) t2
  on t1.id = t2.id
  and t1.date = t2.mxdate

观看演示

2021-03-23