sql-server-2008 – 如何从使用group by命令检索的结果中获取每个组中的第一个记录

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – 如何从使用group by命令检索的结果中获取每个组中的第一个记录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我的输入是:
ID  GroupID  Qty
1         1  100
2         1  200
3         1  300
4         2  98
5         2  198
6         3  175
7         3  275
8         3  375
9         4  215

输出应该是

ID   GroupID    Qty
 1         1    100
 4         2    98
 6         3    175
 9         4    215

任何人可以帮助我如何使用sql Server T-SQL查询

解决方法

declare @T table (ID int,GroupID int,Qty int)
insert into @T values
(1,1,100),(2,200),(3,300),(4,2,98),(5,198),(6,3,175),(7,275),(8,375),(9,4,215)

;with cte as
(
  select
    ID,GroupID,Qty,rank() over(partition by GroupID order by ID) as rn
  from @T
)  
select ID,Qty
from cte
where rn = 1
原文链接:https://www.f2er.com/mssql/75229.html

猜你在找的MsSQL相关文章