Sqlserver 中 如何筛选出 分组后成绩最大列的这一列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqlserver 中 如何筛选出 分组后成绩最大列的这一列相关的知识,希望对你有一定的参考价值。
比如 一张表 Score 表 字段 id, stu_score ,stu_name, stu_course 数据:
1 , 80 , 小王, 物理
2, 80, 小王, 化学
3, 70 ,小王,生物
4, 90,小李,物理
5, 80,小李,化学
6, 90,小李,生物
7, 90,小孙,物理
8, 80,小孙,化学
9, 70,小孙,生物
我只想根据姓名Group by 之後 得到某个人 成绩最大的一条记录 , 也就是说 比如小王取第一条记录可以,取第二条记录 也可以 但是只需要一条,比如小李 取 第4条或者第6条 ,而 小孙取 第7 条记录即可
请问这个Sql 怎麼写?
不对,这麼简单的话,我还需要提问么? 我需要知道最大成绩这一列的ID
追答额,就这么简单,你不能再套一层么?
SELECT DISTINCT * FROM Score a
INNER JOIN
(
SELECT stu_name, MAX(stu_score) stu_score FROM Score Group by stu_name
)t ON t.stu_name = a.stu_name AND a.stu_score = b.stu_score
话说你这个应该是行列转换的问题吧,网上去搜一下吧。
追问不对,max() 方法我还需要提问么?我需要的是 根据 stu_name group by 之後 ,成绩最大的这一列的id
oracle mysql sqlserver数据库中的分页
oracle:
select * from (select rownum r,t1.* from tablename t1 where rownum <M+N ) t2 where t2.r>M;
说明:从tablename表里筛选出从M条记录开始,筛选N条记录。
mysql:
select * from tablename limit n,m;
说明:从tablename表筛选出,从第n条记录开始,筛选出m条记录。
备注:记录位置从0开始。
sqlserver:
select top n * from tablename;
说明:从tablename表中筛选出前n条记录。
以上是关于Sqlserver 中 如何筛选出 分组后成绩最大列的这一列的主要内容,如果未能解决你的问题,请参考以下文章
代码中输入数字自动筛选出最大值,使用array,for loop and if (21.9.2017)