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

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

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

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

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

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

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