1.目的:1.1.在mysql中根据相关要求对指定表结构进行排名;
1.2.根据要求查询对象排名
2.步骤:2.1.制作表结构

Score(s_id,c_id,s_score) –学生编号,课程编号,分数
#成绩表
CREATE TABLE `Score`(`s_id` VARCHAR(20),`c_id`  VARCHAR(20),`s_score` INT(3),PRIMARY KEY(`s_id`,`c_id`)

2.2.插入数据

#成绩表测试数据
insert into Score values('01' , '01' , 80);
insert into Score values('01' , '02' , 90);
insert into Score values('01' , '03' , 99);
insert into Score values('01' , '04' , 67);
insert into Score values('02' , '01' , 70);
insert into Score values('02' , '02' , 60);
insert into Score values('02' , '03' , 80);
insert into Score values('02' , '04' , 98);
insert into Score values('03' , '01' , 80);
insert into Score values('03' , '02' , 80);
insert into Score values('03' , '03' , 80);
insert into Score values('04' , '01' , 50);
insert into Score values('04' , '02' , 30);
insert into Score values('04' , '03' , 20);
insert into Score values('04' , '04' , 40);
insert into Score values('05' , '01' , 76);
insert into Score values('05' , '02' , 87);
insert into Score values('06' , '01' , 31);
insert into Score values('06' , '03' , 34);
insert into Score values('07' , '02' , 89);
insert into Score values('07' , '03' , 98);
insert into Score values('08' , '01' , 89);
insert into Score values('08' , '02' , 98);

2.3.查询表数据

SELECT * FROM score;

3.划分排名:保留同分同级和全排名
方法一 先查询结构再排序

select a.s_id 学号,a.c_id 课程编号,@i:=@i +1 保留排名,  -- 全排名;声明变量@k:=(case when @j=a.s_score then @k else @i end) as 不保留排名, -- 同分同级;声明变量@j:=a.s_score 成绩  -- 声明变量from score a ,(select @k:=0,@i:=0,@j:=0)s ORDER BY 成绩 DESC;

方法二 先排序再查询结果

SELECT a.s_id,a.c_id,@i:=@i+1 保留排名,   -- 全排名@j:=(case when @k=a.s_score THEN @j else @i end) 不保留排名, -- 同分同级@k:=a.s_score 成绩FROM (select * from score ORDER BY s_score DESC)  a ,(SELECT @k:=0, @i:=0,@j:=0) s ;

查询结果如下:

4.指定姓名进行排名查询
eg.查询学号为01 课程号为02同学的排名(同分同级排名和全排名)
方法一

SELECT b.* FROM (select a.s_id ,a.c_id ,@i:=@i +1 保留排名,  -- 全排名@k:=(case when @j=a.s_score then @k else @i end) as 不保留排名, -- 同分同级@j:=a.s_score 成绩from score a ,(select @k:=0,@i:=0,@j:=0)s ORDER BY 成绩 DESC) bWHERE b.s_id='01' AND b.c_id ='02';

方法二

SELECT b.* FROM (SELECT a.s_id,a.c_id,@i:=@i+1 保留排名,   -- 全排名@j:=(case when @k=a.s_score THEN @j else @i end) 不保留排名, -- 同分同级@k:=a.s_score 成绩FROM (select * from score ORDER BY s_score DESC)  a ,(SELECT @k:=0, @i:=0,@j:=0) s) b
WHERE b.s_id='01' AND b.c_id ='02';

查询结果如下:

Mysql实现排名及指定内容查询排名相关推荐

  1. mysql 查询成绩排名_mysql 学生成绩查询排名

    sql语句查询排名 思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序: mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序 ...

  2. Mysql Json、JsonArray 指定属性查询

    场景: 对Mysql 数据库中存储的 Json .JsonArray 字段中指定字段做 like 模糊查询,在度娘的答案中辗转了许久,发现类似的提问很多,但很多都是千篇一律,牛头不对马嘴的无效复制文, ...

  3. 百度竞价批量查询排名-度哥软件

    度哥竞价批量查询排名是一款强大的百度竞价批量排名查询神器,专门针对医疗行业精心制作的软件,此软件结合百度竞价系统的推广实况查询排名,排名结果一致,能提供汇总关键词排名报表,功能非常全面和完善,数据传输 ...

  4. mysql:查询排名

    sql语句查询排名 思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序: mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序 ...

  5. mysql 查询字段排名_mysql:查询排名

    sql语句查询排名 思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序: mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序 ...

  6. MySQL 查询排名

    参考:http://fellowtuts.com/mysql/query-to-obtain-rank-function-in-mysql 前段时间看到个帖子,是关于用 SQL 查询排名的. 那个帖子 ...

  7. MySql排序并查询排名

    MySql排序并查询排名 SELECT u.uid,u.name,u.score, @rownum := @rownum + 1 AS rownum FROM (SELECT @rownum := 0 ...

  8. mysql排名第一_SQL查询排名第二名的信息

    今天看见同学去面试的面试题,查询出某个字段排名第二名的信息,自己就看看 如果是Oracle ,这不就是考察Oracle分页么,以Oracle的emp表为例,根据薪水排名,查询排名第二的员工信息: se ...

  9. mysql数据库查询排名

    在MySQL中,不存在类似于SQL Server或Orcal等中的rank()函数来得到排名:所以我们需要手动地写这个rank功能. 基本知识: sql语句中,使用@来定义一个变量.如:@rank s ...

最新文章

  1. 资料库保存树结构的三种方法
  2. 不丹的启示:用国民幸福总值替代GDP
  3. 关于学生信息录入(文件操作)的心得体会
  4. MHA管理所有数据库服务器
  5. BZOJ3110: [Zjoi2013]K大数查询(整体二分)
  6. Java笔记-异常机制中try(...)中括号的用法
  7. oopc——4.继承
  8. cxgrid限定行数
  9. SQL Server中的动态SQL
  10. C# 合并多种格式文件为PDF
  11. 30 秒速成好莱坞黑客 -- 在 Linux 终端中伪造好莱坞黑客屏幕
  12. MapReduce WordCount Combiner程序
  13. 大型项目开发: 隔离 (《大规模C++程序设计》书摘)
  14. PID与MPC控制方法
  15. 笔记本出现此windows无线服务器,笔记本Windows7提示Windows无法配置此无线连接如何解决?...
  16. 关于QtCreator中三种不同编译版本 debug、release、profile 的区别
  17. SpringCloud与微服务Ⅷ --- Hystrix断路器
  18. html设置表格点击变色,js实现表格变色点击行颜色改变
  19. Java编程题-买苹果
  20. 相关算法---贪心算法

热门文章

  1. fastjson首字母大写的几种方法
  2. 照片别放在手机相册了!跟我学,放这4处地方安全又不占手机内存
  3. 图像特征提取(三)——SURF特征提取算法详解
  4. excel计算标准分
  5. 【转载】蠕虫病毒 incaseformat 在国内肆虐,可导致用户数据丢失
  6. 人工智能之机器学习简介
  7. 高手diy android控制的智能蓝牙led灯,高手DIY Android控制智能蓝牙LED灯
  8. Sim300模块AT命令
  9. 【图片新闻】以色列著名军火商Rafael公司发布令人震撼的未来装甲战争假想视频
  10. 皮肤黑的人穿什么颜色的衣服比较好