Excalibur_
Excalibur_
2015-05-04 18:21
采纳率: 0%
浏览 1.5k

SQL查询 求大神 坐等 SQL查询语句

CREATE TABLE hard(
id int IDENTITY(1,1) primary key ,
aa varchar(50) ,
bb int ,
)
insert into hard values('a',9)
insert into hard values('a',7)
insert into hard values('a',8)
insert into hard values('a',6)

insert into hard values('b',2)
insert into hard values('b',3)
insert into hard values('b',4)

insert into hard values('c',1)
insert into hard values('c',8)
insert into hard values('c',2)

要求查询出每个品种值最大的前2项

查询结果如下
a 9
a 8
b 4
b 3
c 8
c 2

求大神SQL
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • u012216727
    大河行脚 2015-05-05 00:18

    select * from(select top 2 * from table group by bb orderby bb desc) n ;

    http://www.douban.com/note/251782470/

    你的这个要求里涉及到分组排序,然后获取每个分组里的前两个;
    你可以试试我上面写的,我没有测试;
    如果还不行,你就将你的要求百度就可以了

    如果回答对您有帮助,请采纳

    点赞 评论
  • danielinbiti
    danielinbiti 2015-05-05 01:53

    下面是SQLServer的,Oracle也比较简单

     select * from(
    select h.*,row_number() over(partition by aa order by bb desc) r from hard h
    ) t where r<=2
    
    点赞 评论

相关推荐