sql server2008分组查询 求教
有个huang表其中有intid,stringname,inttid,现在我想查询出每个tid下的4条数据,多了不要。只要每个tid有4条数据。错了name是varcha...
有个huang表 其中有int id ,string name ,int tid ,现在我想查询出每个 tid下的4条数据,多了不要。只要 每个tid有4条 数据。
错了name 是 varchar(50) ... 展开
错了name 是 varchar(50) ... 展开
1个回答
展开全部
Declare @Huang table (ID int ,Name nvarchar(30) ,Tid int)
insert into @Huang values(1,'张三',1)
insert into @Huang values(2,'李四',1)
insert into @Huang values(3,'王五',1)
insert into @Huang values(4,'赵钱孙',1)
insert into @Huang values(5,'周',1)
insert into @Huang values(6,'吴',2)
insert into @Huang values(7,'阚',2)
insert into @Huang values(8,'薛',2)
insert into @Huang values(9,'欧阳',2)
select
ID,Name,Tid
from
(
select
ROW_NUMBER() OVER (partition by Tid order by ID ) as Rank,
ID,Name,Tid
from @Huang
) M
WHERE M.Rank<5
如果不够四条就都显示了。仁兄看此法中意否?
追问
ROW_NUMBER() OVER (partition by
这个 没接触过 ,求解
追答
ROW_NUMBER() OVER (partition by Tid order by ID ) as Rank
按照tid分组,在组内按照ID升序编号。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询