[SQL ] 同个group取出前两笔资料

楼主: hungwei0331 (Game)   2016-12-06 00:32:59
数据库名称:sql server
内容/问题描述:
期望同个group取出前两笔
假设有多笔资料
pkey1 123
pkey2 123
pkey3 123
pkey4 456
pkey5 456
pkey6 456
使用group by 后想要只取出前两笔资料如下
pkey1 123
pkey2 123
pkey4 456
pkey5 456
目前使用过子查询并且将连结中范例改为select top 2
连结如下,
https://goo.gl/DVLvjw
但会有错误讯息提示子查询不可回传多笔资料
还请前辈们开示与提点 谢谢
作者: streetbad (翊)   2016-12-06 08:50:00
把group字段distinct丢到暂存,设定变量去接总共几种group,再用WHILE循环看是要组字串(UNION语法)或是塞到新的暂存表如果需要写法再跟我说吧.....
作者: LegendC (小宝)   2016-12-06 11:26:00
select * from @table a where Memo IN( SELECT TOP 1 Memo from @table where ID = a.ID)把上面那行的TOP 1 改成 TOP N就可以达到你要的
作者: streetbad (翊)   2016-12-06 11:44:00
对耶楼上的写法是选每种group的前两笔....语法试了一下 字段对应 Memo=pkey, ID = 123/456/.....感谢传说C~~Orz 我也撞墙了刚才

Links booklink

Contact Us: admin [ a t ] ucptt.com