菜鸟,求SQL语句,100分

kasad 2009-08-13 10:33:44
表:
姓名 科目 分数
A 数学 70
A 英语 80
A 语文 75
B 数学 60
B 英语 65
B 语文 89
C 数学 84
C 英语 98
C 语文 88
D 数学 75
D 英语 65
D 语文 82

求每个同学的最高分
怎么写SQL语句
先谢谢各位大侠
...全文
244 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
jooes 2009-08-26
  • 打赏
  • 举报
回复
太详细了。。
kasad 2009-08-19
  • 打赏
  • 举报
回复
谢谢各位,结贴
wenboliang 2009-08-13
  • 打赏
  • 举报
回复
select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
yinwei520 2009-08-13
  • 打赏
  • 举报
回复
select 姓名,max(分数) from tb
group by 姓名
yinwei520 2009-08-13
  • 打赏
  • 举报
回复
select 姓名,max(分数) from tb
group by 姓名
gaijf 2009-08-13
  • 打赏
  • 举报
回复
select 姓名, max(分数) as 最高分 from 表名 group by 姓名
莫鸣 2009-08-13
  • 打赏
  • 举报
回复
select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
szyjp 2009-08-13
  • 打赏
  • 举报
回复
楼主主要是想送分吧,呵呵
1楼的方法就可以啦
feixianxxx 2009-08-13
  • 打赏
  • 举报
回复
if 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

*/
flyfly2008 2009-08-13
  • 打赏
  • 举报
回复
9#的太牛了
gw6328 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sql77 的回复:]
SQL codeSELECT*FROM TB TWHERE 分数=(SELECTMAX(分数)FROM TBWHERE 姓名=T.姓名)
听说这样效率高
[/Quote]
学习!
jt_linalam 2009-08-13
  • 打赏
  • 举报
回复
select 姓名,max(分数) from table group by 姓名
flyfly2008 2009-08-13
  • 打赏
  • 举报
回复
select * from #T t
where not exists(select 1 from #T where name=t.name and sorce>t.sorce)
xia258058187 2009-08-13
  • 打赏
  • 举报
回复
select * from (select dense_rank() over(partition by 姓名 order by 分数 desc) rk,tb.* from tb) T
where T.rk =1
遥望那些年 2009-08-13
  • 打赏
  • 举报
回复

select 姓名,max(分数) as 最高分
FROM tb
group by 姓名

很简单的SQL语句啊~
lihan6415151528 2009-08-13
  • 打赏
  • 举报
回复

select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
zc_0101 2009-08-13
  • 打赏
  • 举报
回复

--========+++++++++++++++++++++++++++++++++++==========
--======= 每天都在进步,却依然追不上地球的自传=========
--======= 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
*/
zfh198601 2009-08-13
  • 打赏
  • 举报
回复
select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
microsofttyc 2009-08-13
  • 打赏
  • 举报
回复
select 姓名,max(分数) as 最高分
from tb
group by 姓名
htl258_Tony 2009-08-13
  • 打赏
  • 举报
回复
select 姓名,max(分数) as 最高分
FROM tb
group by 姓名
只要姓名与最高分的结果,这样最简单
加载更多回复(25)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧