如何将id绑定到最大日期,按照没有子查询的第二个ID进行分组?

时间:2017-06-16 20:01:58

标签: sql sql-server-2008

如果我有以下数据方案:

Id       GroupedById   Date
--       -----------   ----
1        11            1/2/17
2        11            1/4/17
3        11            1/3/17
4        12            4/1/17
5        12            1/1/17
6        12            2/1/17

我在结果集中想要的是:

Id       GroupedById   Date
--       -----------   ----
2        11            1/4/17
4        12            4/1/17

我正在尝试Group ByHaving的组合,我也尝试了Over (Partition By),但似乎没有人能做到这一点。但是,当我添加Id字段时,我获得的不仅仅是GroupedById和最大日期。

SELECT GroupById, MAX(Date) FROM MyTable Group By GroupById获取GroupById和最长日期,但我不确定如何获得具有该组合的相应Id

1 个答案:

答案 0 :(得分:1)

row_numberTOP一起使用。

select top 1 with ties *
from tbl
order by row_number() over(partition by groupedID order by date desc)