MYSQL分数排名

编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。

+----+-------+
| Id | Score |
+----+-------+
| 1 | 3.50 |
| 2 | 3.65 |
| 3 | 4.00 |
| 4 | 3.85 |
| 5 | 4.00 |
| 6 | 3.65 |
+----+-------+
例如,根据上述给定的 Scores 表,你的查询应该返回(按分数从高到低排列):

+-------+------+
| Score | Rank |
+-------+------+
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
+-------+------+

来源:力扣(LeetCode)

SELECT Score, (SELECT count(DISTINCT score) FROM Scores WHERE score >= s.score) AS Rank FROM Scores s ORDER BY Score DESC ;

原文地址:https://www.cnblogs.com/corvus/p/12019828.html

时间: 2024-10-11 22:59:58

MYSQL分数排名的相关文章

MySQL实现排名并查询指定用户排名功能,并列排名功能

MySQL实现排名并查询指定用户排名功能,并列排名功能 表结构: CREATE TABLE test.testsort ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) DEFAULT 0 COMMENT '用户id', score decimal(10, 2) DEFAULT 0.00 COMMENT '分数', PRIMARY KEY (id) ) ENGINE = INNODB AUTO_INCREMENT = 1 CHARACTER SE

LeetCode-178:分数排名

题目描述: 编写一个 SQL 查询来实现分数排名.如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有“间隔”. +----+-------+ | Id | Score | +----+-------+ | 1 | 3.50 | | 2 | 3.65 | | 3 | 4.00 | | 4 | 3.85 | | 5 | 4.00 | | 6 | 3.65 | +----+-------+ 例如,根据上述给定的 Scores

力扣——分数排名(数据库的题

编写一个 SQL 查询来实现分数排名.如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有"间隔". +----+-------+ | Id | Score | +----+-------+ | 1 | 3.50 | | 2 | 3.65 | | 3 | 4.00 | | 4 | 3.85 | | 5 | 4.00 | | 6 | 3.65 | +----+-------+ 例如,根据上述给定的 Scores 

mysql计算排名

mysql计算排名,获取行号rowno 学生成绩表数据 SELECT * FROM table_score ORDER BY score DESC; 获取某个学生成绩排名并计算该学生和上一名学生成绩差,是并列排名 SELECT *, (SELECT count(DISTINCT score) FROM table_score AS b WHERE a.score<b.score)+1 AS rank, #获取排名,并列 (SELECT b.score FROM table_score AS b

利用awk处理学生分数排名问题案例

利用awk处理学生分数排名问题真实案例如下: 1.已知老男孩教育运维班26期期中集群架构上台述职报告人员的分数为: 提示:由述职学员上台演讲搭建的集群架构,由学生评委和导师评分,历经2天共产生如下评分 [[email protected] ~]# cat oldboy_student.txt 冯泉    100     100     96      95      100     96      100     97 万永振  100     95      90      88      9

mysql查询排名

student_work表 student_info表 sql语句:按grade从高到低排名 结果: mysql查询排名

SOJ.分数排名查询

分数排名查询     总提交数量: 641 通过数量: 239                 时间限制:1秒    内存限制:256兆 题目描述 张老师在同学们考试结束后,收到很多邮件. 有的同学问学号为"12号"的多少分? 有的同学问学号为"18号"的排名第几? 有的同学问80分全班排第几? 还有的同学问90分的全班有几个人? 张老师手上有所有同学的分数,请你写一个程序帮他去回答这些问题. 输入格式 输入由两部分组成,第一部分为同学的分数.第一行n为同学的数量(

Django项目:CRM(客户关系管理系统)--75--65PerfectCRM实现CRM课程分数排名

1 # classtop_urls.py 2 # --------64PerfectCRM实现CRM课程排名详情-------- 3 from django.conf.urls import url 4 from bpm.coursetop import coursetop_views 5 urlpatterns = [ 6 url( r'^coursetop_details/(\d+)/$', coursetop_views.coursetop_details, name="coursetop

分数排名

编写一个 SQL 查询来实现分数排名.如果两个分数相同,则两个分数排名(Rank)相同 +----+-------+ | Id | Score | +----+-------+ | 1 | 3.50 | | 2 | 3.65 | | 3 | 4.00 | | 4 | 3.85 | | 5 | 4.00 | | 6 | 3.65 | +----+-------+ 例如,根据上述给定的 Scores 表,你的查询应该返回(按分数从高到低排列): +-------+------+ | Score |