表[T_Grade]中有记录如下:
Id           StuId          Score          Email
-------------------------------------------------------
1            9              12    [email protected]
2            9              10             [email protected]
3            8              13             [email protected]
4            7              12             [email protected]
5            6              11             [email protected]
-------------------------------------------------------
按Email 分组(group by email ), 获取最小的分数min(Score)
我怎么才能获取到这个最小分数的StuId

解决方案 »

  1.   


    1.分组:
    SELECT eMail,Min(Score) AS MinScore FROM [T_Grade] GROUP BY eMail2.获得最小分数的StuID
    SELECT TOP 1 StuID FROM [T_Grade] ORDER BY Score
      

  2.   

    select 
       top 1  stuid 
    from 
       table1 
    where 
      score in(select min(score) from table1 group by email)
      

  3.   

    select top 1  stuid from table1 where score in(select min(score) from table1 group by email)
      

  4.   

    那么这样写:
    SELECT T.*
    FROM [T_Grade] T
    JOIN (
    SELECT eMail,Min(Score) AS MinScore FROM [T_Grade] GROUP BY eMail) T2 ON T.eMail=T2.eMail AND T.Score=T2.MinScore