Create Table TEST (姓名 Nvarchar(10), 分数 Numeric(10,2)) Insert TEST Select N'甲', 4.25 Union All Select N'甲', 4.00 Union All Select N'乙', 5.3 Union All Select N'乙', 5.4 Union All Select N'丙', 4.8 Union All Select N'丙', 4.9 GO Select 姓名, Max(分数) As 分数 From TEST Group By 姓名 Order By 分数 Desc GO Drop Table TEST --Result /* 姓名 分数 乙 5.40 丙 4.90 甲 4.25 */
開始的回復漏了Group By 姓名
--如果要加入排名,可用如下:Select 姓名,Max(分数) as 分数, 排名=IsNULL((Select Count(distinct 姓名) from tbl Where 分数>Max(a.分数)),0)+1 From tbl as a group by 姓名 Order By 分数 Desc
Create Table TEST
(姓名 Nvarchar(10),
分数 Numeric(10,2))
Insert TEST Select N'甲', 4.25
Union All Select N'甲', 4.00
Union All Select N'乙', 5.3
Union All Select N'乙', 5.4
Union All Select N'丙', 4.8
Union All Select N'丙', 4.9
GO
Select
姓名,
Max(分数) As 分数
From TEST
Group By 姓名
Order By 分数 Desc
GO
Drop Table TEST
--Result
/*
姓名 分数
乙 5.40
丙 4.90
甲 4.25
*/
排名=IsNULL((Select Count(distinct 姓名) from tbl Where 分数>Max(a.分数)),0)+1
From tbl as a
group by 姓名
Order By 分数 Desc