许多人提出过,到现在还没有真正解决的问题
有一组数据如下   
 学生编号      学生课程      学生成绩 
 001                        语文                        90 
 001                        语文                        80 
 001                        语文                        90     
 002                        语文                        70 
 002                        语文                        90 
 002                        语文                        70   
 003                        语文                        92 
 003                        语文                        90 
 003                        语文                        90   
 我想用分组   得到每个学生的语文最高成绩 
 select   *   from   成绩表      where   学生成绩=(select   top   1   max(学生成绩)   from   成绩表      group   by   学生编号   )   order   by   学生成绩   desc   
 这样写并不能解决问题
------解决方案--------------------如果只有这些列, 直接 max 就行了   
 select 
 学生编号  ,学生课程  ,学生成绩= max(学生成绩) 
 from 表 
 group by 学生编号  ,学生课程 
------解决方案--------------------select 学生编号,学生课程,学生成绩= max(学生成绩) from 表 where 学生课程= '语文 ' group by 学生编号,学生课程
------解决方案---------------------- 如果还有其他数据   
 select * from 成绩表 a 
 where 学生成绩=(select max(学生成绩) from 成绩表 where 学生编号 = a.学生编号 and 学生课程 = a.学生课程)     
 -- 或 
 select * from 成绩表 a 
 where not exists( 
     select * from 成绩表 where 学生编号 = a.学生编号 and 学生课程 = a.学生课程 and 学生成绩 >  a.学生成绩)
------解决方案--------------------Create Table 成绩表 
 (ID  Int Identity(1, 1), 
  学生编号 Char(3), 
  学生课程 Nvarchar(10), 
  学生成绩 Int) 
 Insert 成绩表 Select  '001 ',        N '语文 ',        90 
 Union All Select  '001 ',        N '语文 ',        80 
 Union All Select  '001 ',        N '语文 ',        90 
 Union All Select  '002 ',        N '语文 ',        70 
 Union All Select  '002 ',        N '语文 ',        90 
 Union All Select  '002 ',        N '语文 ',        70 
 Union All Select  '003 ',        N '语文 ',        92 
 Union All Select  '003 ',        N '语文 ',        90 
 Union All Select  '003 ',        N '语文 ',        90 
 GO 
 select 学生编号, 学生课程, 学生成绩 from 成绩表 A  where ID = (select top 1 ID from 成绩表 Where 学生编号 = A.学生编号 And 学生课程 = A.学生课程 Order By 学生成绩 desc, ID) 
 GO 
 Drop Table 成绩表 
 --Result 
 /* 
 学生编号	学生课程	学生成绩 
 001	语文	90 
 002	语文	90 
 003	语文	92 
 */