Chi*_*isu 5 sql-server max subset
我在这里敲我的头.我觉得很愚蠢,因为我确定我以前做过这样的事情,但不能为我的生活记住如何.其中一天我猜>.<
说我有以下数据:--->和一个返回此的查询:--->但我想要这个:
ID FirstID ID FirstID ID FirstID
-- ------- -- ------- -- -------
1 1 1 1 7 1
2 1 3 3 3 3
3 3 4 4 6 4
4 4 5 5 5 5
5 5
6 4
7 1
Run Code Online (Sandbox Code Playgroud)
请注意,我的查询返回ID = FirstID的记录,但我希望它返回唯一FirstID的每个子集的Max(ID).听起来很简单吧?这就是我的想法,但我一直在追回记录#7.这是我的查询(返回上面第二块图的那个)和一些测试代码,让您的生活更轻松.我需要这个给我最右边的块结果.应该注意,这是一个自连接表,其中FirstID是ID的外键.谢谢 :)
declare @MyTable table (ID int, FirstID int)
insert into @MyTable values (1,1),(2,1),(3,3),(4,4),(5,5),(6,4),(7,1)
select ID, FirstID
from @MyTable
where ID = FirstID
Run Code Online (Sandbox Code Playgroud)
这行得通吗
declare @MyTable table (ID int, FirstID int)
insert into @MyTable values (1,1),(2,1),(3,3),(4,4),(5,5),(6,4),(7,1)
Select FirstID, Max (Id) ID
From @MyTable
Group BY FirstID
Run Code Online (Sandbox Code Playgroud)
结果是
FirstID ID
----------- -----------
1 7
3 3
4 6
5 5
Run Code Online (Sandbox Code Playgroud)