[SQL] MySQL实现多种排名查询

MYSQL实现根据sql查询结果进行排名 MYSQL实现根据sql查询结果进行排名背景构建数据模型按照薪资从高到低排名按照薪资从高到低并列排名(1)按照薪资从高到低并列排名(2) 背景 MYSQL对查询结果根据某列顺序添加排名;本例基于部门薪资排名做演示。 构建数据模型 创建一个薪资表,包含部门、员工和薪资 --创建一个包含部门(dept)、员工(emp)、薪资(salary)的表 CREATE TABLE test_tb ( dept VARCHAR ( 10 ) NOT NULL, emp VARCHAR ( 10 ) NOT NULL, 阅读详情

示例:

Scores 表如下:

+----+-------+
| Id | Score |
+----+-------+
| 1  | 3.50  |
| 2  | 3.65  |
| 3  | 4.00  |
| 4  | 3.85  |
| 5  | 4.00  |
| 6  | 3.65  |
+----+-------+

SQL架构:点击此处


一、普通排名(排名无并列)

按成绩排序后的顺序,排名逐一增1,对相同的成绩按 Id 递增的顺序递增排名。(无相同排名的情况)

1. 升序查询
+------+-------+------+
| Id   | Score | Rank |
+------+-------+------+
|    1 |  3.50 |    1 |
|    2 |  3.65 |    2 |
|    6 |  3.65 |    3 |
|    4 |  3.85 |    4 |
|    3 |  4.00 |    5 |
|    5 |  4.00 |    6 |
+------+-------+------+

SQL语句:

SELECT Id, Score, @rank := @rank + 1 AS 'Rank'
FROM Scores, (SELECT @rank := 0) r
ORDER BY Score;
2. 降序查询
+------+-------+------+
| Id   | Score | Rank |
+------+-------+------+
|    3 |  4.00 |    1 |
|    5 |  4.00 |    2 |
|    4 |  3.85 |    3 |
|    2 |  3.65 |    4 |
|    6 |  3.65 |    5 |
|    1 |  3.50 |    6 |
+------+-------+------+
MySQL实现排名 0x01.需求 编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。 +----+-------+ | Id | Score | +----+-------+ | 1 | 3.50 | | 2 | 3.65 | | 3 | 4.00 | | 4 | 3.85 | | 5 | 4.00 | | 6 | 3.65 | +----+-------+ 例如,根据上述给定的 Scores 表,你的查询应该返回(按分数从高到低排列): +-------+--- 立即下载

相关推荐

高项49个过程,输入、工具技术、输出的思维导图

为了制定项目章程的管理方法主要是采用了数据收集技术,例如通过头脑风暴,通过召集主题专家和团队成员收集信息、解决方案,并在短时间内获得大量创意,并对大量创意进行分析和排序,选出最优化最适合本项目方案,并对项目成员的不同差异观点,进行了引导和对冲突的管理,最终有助于项目干系人的目标、成功标准的内容达成一致意见,形成完善的项目章程。在本过程中得到项目章程,在制定项目章程中需要包括信息有:项目名称、项目目标、项目总里程碑进度表、项目经理、主要干系人及财务预算信息。本过程在仅开展一次,或仅在项目的预定义点开展。

Legend_Jiang的博客 6181

什么是Claude 的 Agent Skills?

摘要: Claude的Agent Skills功能支持通过结构化技能包(含指令、脚本、工具)实现任务自动化,如数据分析、文档生成等。核心能力包括:1)技能包管理(如Python脚本+模板);2)工具调用(API/数据库交互);3)子代理协作(拆分复杂任务)。快速上手步骤:创建技能包(如Excel报表生成)、配置工具权限、触发执行;支持多代理并行处理(如SQL查询+可视化)。关键技巧:工具需明确定义参数、利用子代理共享上下文、注重权限管控。官方文档与社区资源提供进阶指导,使Claude成为可编程的数字助手。

jobleap.cn求职助手首页 1729

深入解析BlueZ5与D-Bus:Linux蓝牙开发实战指南

本文深入解析BlueZ5与D-Bus在Linux蓝牙开发中的核心应用,提供从环境搭建到实战开发的完整指南。通过详细代码示例和调试技巧,帮助开发者掌握蓝牙协议栈与D-Bus接口的交互方法,实现高效蓝牙设备管理与GATT服务开发。

weixin_28292761的博客 451

【芯片验证随心记】1.SystemVerilog中,rand和randc的区别?如何用constraint实现randc?

在SystemVerilog里,randc 的“不重复循环”特性是用一个 周期性排列器(permutation engine) 实现的,而这个引擎在 LRM 里并没有公开。我们只能在 “用户空间” 用 rand + constraint 去模仿它的行为。每次随机化只取 queue.pop_front(),用完再洗。在4次随机化内,y会依次出现0,1,2,3各一次(顺序随机)每次随机化,x可能是0-3中的任意值,可能连续多次相同。每次随机化时,在未使用的值里随机挑一个;第5次随机化时,重新生成新的排列周期。

qq_43172512的博客 342

一种低照度目标检测新策略:IAT集成YOLOv8实现暗光与雾霾环境下的性能优化【附核心实战代码】

随着深度学习和计算机视觉的快速发展,目标检测模型在各个领域中的应用不断扩展,特别是在低照度环境下的视觉任务。YOLOv8作为当前最先进的目标检测模型之一,在高亮度和良好照明条件下表现出色,但在低照度环境下的性能存在一定的不足。为了解决这一问题,我们提出了一种轻量级的低照度图像增强网络(IAT)来改进YOLOv8的暗光检测能力。本篇文章将深入探讨这一创新改进,并附带代码实现,帮助大家更好地理解这一技术的应用和效果。

一键难忘的博客 3501

机器人轨迹规划——三次样条轨迹1(基于速度的求解方法)

三次样条轨迹是利用三次样条曲线来对给定的一系列点进行插值,从而得到一个光滑的轨迹。三次样条因为每段的多项式次数最高都是三阶的,所以可以得到2阶导数连续,也就是加速度连续的轨迹。假设给定了一系列的点q0q1q2qnq0​q1​q2​...qn​,以及每个点对应的参数t0t1t2tnt0​t1​t2​...tn​,计算一条三次样条曲线sts(t)st,该曲线通过给定的点q0q1q2qnq0​q1。

出门搔白首,若负平生志 1471

【ROS2】机械臂MoveIt2

navigation2 专注于移动机器人的导航与定位,处理大范围空间的底盘运动;MoveIt2 专注于机械臂的操作规划,处理多关节协同的末端执行器运动。在复合机器人(如,移动机械臂)navigation2 负责移动到目标区域,MoveIt2 负责机械臂抓取。官网:https://moveit.picknik.ai/main/index.html。

郭老二 597

OpenClaw 钉钉和飞书集成方案研究 & OpenClaw 研究分析报告

OpenClaw(原名 Clawdbot,曾用名 Moltbot)是一款开源的个人 AI 智能体,采用"本地优先"设计理念。与传统聊天机器人不同,OpenClaw 具备真正的系统级执行能力,能够实际操作用户的计算机系统,完成各种实际任务。核心优势本地部署:所有数据存储在用户本地设备,隐私零泄露系统级执行:具备完整的系统访问权限,可执行文件操作、命令运行等全渠道交互:支持多种即时通讯平台作为交互界面开源透明:MIT 许可证,代码完全开放,社区驱动开发应用场景个人助理:日程管理、任务提醒、邮件处理。

AI天才研究院 2341

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: [SQL] LeetCode 178. 分数排名 - [Medium]
下一篇: [SQL] LeetCode 184. 部门工资最高的员工 - [Medium]
TreasureAI
博客等级 码龄8年 61粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值