34,576
社区成员
发帖
与我相关
我的任务
分享
select 姓名,max(分数) from tb
group by 姓名
select 姓名,max(分数) from tbif object_id('tb') is not null
drop table tb
go
create table tb (姓名 varchar(1),科目 varchar(4),分数 int)
insert into tb
select 'A','数学',70 union all
select 'A','英语',80 union all
select 'A','语文',75 union all
select 'B','数学',60 union all
select 'B','英语',65 union all
select 'B','语文',89 union all
select 'C','数学',84 union all
select 'C','英语',98 union all
select 'C','语文',88 union all
select 'D','数学',75 union all
select 'D','英语',65 union all
select 'D','语文',82
go
--如果只要姓名和对应最高 成绩
select 姓名,MAX(分数) as 分数
from tb
group by 姓名
/*
姓名 分数
---- -----------
A 80
B 89
C 98
D 82
*/
------------------------------------------
--如果要全部信息
SELECT *
FROM TB T
WHERE 分数=(SELECT MAX(分数) FROM TB WHERE 姓名=T.姓名)
order by 姓名
/*
姓名 科目 分数
---- ---- -----------
A 英语 80
B 语文 89
C 英语 98
D 语文 82
*/
select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
--========+++++++++++++++++++++++++++++++++++==========
--======= 每天都在进步,却依然追不上地球的自传=========
--======= By: zc_0101 At:2009-08-13 10:37:53=========
--========++++++++++++++++++++++++++++++++++++=========
--> 测试数据: #tb
if object_id('tempdb.dbo.#tb') is not null drop table #tb
create table #tb (姓名 varchar(1),科目 varchar(4),分数 int)
insert into #tb
select 'A','数学',70 union all
select 'A','英语',80 union all
select 'A','语文',75 union all
select 'B','数学',60 union all
select 'B','英语',65 union all
select 'B','语文',89 union all
select 'C','数学',84 union all
select 'C','英语',98 union all
select 'C','语文',88 union all
select 'D','数学',75 union all
select 'D','英语',65 union all
select 'D','语文',82
----------------查询------------
select a.科目,max(a.分数) 分数,(select 姓名 from #tb where 分数=max(a.分数) and 科目=a.科目) 姓名 from #tb a group by 科目
----------------结果--------------
/*
科目 分数 姓名
数学 84 C
英语 98 C
语文 89 B
*/
select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
select 姓名,max(分数) as 最高分
from tb
group by 姓名
select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
只要姓名与最高分的结果,这样最简单