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) ...
展开
 我来答
紫仑天玑
2015-05-03 · 萝卜数学关注思维过程
紫仑天玑
采纳数:324 获赞数:888

向TA提问 私信TA
展开全部
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升序编号。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式