SQL23 对所有员工的薪水按照salary降序进行1-N的排名

五大经典遥感数据集对比:LoveDA、Potsdam、Toronto、Vaihingen、Massachusetts Roads选哪个? 本文深度对比了LoveDA、Potsdam、Vaihingen、Toronto和Massachusetts Roads五大经典遥感数据集。针对城市监测、道路提取、土地分类等不同任务,从分辨率、标注质量、数据规模及场景多样性等核心维度进行分析,为研究者根据项目目标、硬件条件与应用场景选择最合适的遥感数据集提供决策指南。 阅读详情

1. 题目

  • 题目来源:SQL23 对所有员工的薪水按照salary降序进行1-N的排名
  • 题目描述
    对所有员工的薪水按照salary降序进行1-N的排名,要求相同salary并列,且按照emp_no升序排列:
  • 表格
    在这里插入图片描述
  • 所需结果
    在这里插入图片描述

2. 题解

使用排序窗口函数即可:

SELECT t.emp_no, t.salary, t.t_rank
FROM (SELECT *,
             DENSE_RANK() OVER(ORDER BY salary DESC) t_rank
      FROM salaries) t
ORDER BY t.t_rank ASC, t.emp_no ASC

习惯了用子查询,这里其实不用这么麻烦,直接在SELECT 窗口函数即可。

SELECT emp_no, 
       salary,
       DENSE_RANK() OVER(ORDER BY salary DESC) t_rank
      FROM salaries
ORDER BY t_rank ASC, emp_no ASC

反思:SQL执行顺序、排序窗口反思小结

一、SQL中执行顺序可能引发的问题

牢记:SELECT 中的字段不可再拿去用于 WHERE 中当做条件判断,
若需要用到SELECT中字段,需要先将其置于子查询当中(比如需要使用 排序窗口函数 作为外变判断条件的时候)

二、窗口函数

1、窗口函数组内排序的三种方法:

  • ① RANK(),对应 1, 2, 2, 4
  • ② ROW_NUMBER(),对应 1, 2, 3, 4
  • ③ DENSE_RANK,对应 1, 2, 2, 3

2、排序的两种方法:

  • ① 全局排序:ORDER BY
  • ② 分组排序:ORDER BY 置于 OVER()函数中

更具体的窗口函数用法可以点击:核心内容-聚合函数

易错点:这题 ORDER BY 需要加上 DESC 进行倒序排列

最小二乘法(看完即会) 其中,X是数据矩阵,每一行是一个数据点,每一列是一个自变量(包括截距项),Y是观测值向量,β是待求的系数向量。为了找到使S最小的a和b的值,我们需要对S求关于a和b的偏导数,并令它们等于零。最小二乘法的数学公式通常用于线性回归问题,其中目标是找到一条直线(或更高维度的超平面),使得这条直线与给定数据点的误差平方和最小。同样地,通过求偏导数和令偏导数等于零,我们可以得到一个线性方程组,解这个方程组可以找到最优的b_0, b_1, …+ b_m*x_m,其中b_0是截距,b_1到b_m是各个自变量的系数。 阅读详情

相关推荐

重磅!Repo Wiki!

RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。

ayusong870的博客 4032

机房收费系统中遇到的SQL语句问题

个人版机房收费系统正在进行中,遇到了几个有关SQL语句的问题。 1.sum函数的使用: 在结账部分,要求出某个表中某一列的和。在第一次机房系统中,我不知道sum函数的存在,很傻很天真地用循环一个一个往上加。下面以求所有卡中余额的和来说说sum函数怎么使,SQL语句为:select sum(cash)from T_Card。这个格式不是固定的,可以根据需求更改,比如求多列的和:select su

程雅丽的博客 1451

保姆级教程:在Win10/Win11上搞定AppScan 10.0.0安装与许可证激活(含常见报错解决)

本文提供AppScan 10.0.0在Win10/Win11上的详细安装与许可证激活指南,涵盖环境准备、分步安装、文件替换技巧及常见报错解决方案。通过专业的安全测试工具部署实践,帮助用户高效完成安装并避免常见陷阱,提升Web应用安全扫描效率。

weixin_30800987的博客 425

mysql面试题 练习题

mysql面试题 练习题题目:一、题目:写一个查询语句,输入参数:日期(date),输出表格如下:题目:二、另外请模拟以下场景,来写对应的sql语句: 题目:一、题目:写一个查询语句,输入参数:日期(date),输出表格如下: 题干:create table work_plan ( worker_name varchar(10), --人员 start_date date, --派工起始日 end_date date, --派工截止日

qq_42005540的博客 417

Vivado 2018.3 SDK烧写bin文件避坑指南:如何解决QSPI模式下的常见错误

本文深入解析了在Vivado 2018.3 SDK中为Zynq FPGA烧写QSPI Flash时遇到的常见问题,特别是启动模式为QSPI时出现的警告与失败。文章从Zynq启动机制入手,提供了修改FSBL代码以强制使用JTAG模式、调整硬件配置等核心解决方案,并分享了实战案例与最佳实践,帮助开发者高效避坑,确保bin文件烧写成功。

arduino9maker的博客 389

jQuery 版本怎么选?别一上来就用最新版,老项目里这个坑很常见

jQuery 是一个封装好的 JavaScript 函数库,简称 JQ它的核心理念是jQuery 有 1.x、2.x、3.x 三个主要版本系列2.0 以上版本不再支持 IE6、IE7、IE8版本选择不能只看“新不新”,而要看项目兼容性和实际需求.min.js是压缩版文件,生产环境常用使用 jQuery 前必须先通过<script>正确引入基本就是没引入或引入失败可以快速绑定点击事件.animate()可以快速实现动画效果,但定位属性要设置好。

Web安全工具库 397

SQL23 对所有员工的薪水按照salary降序进行1-N排序

文章目录一、题目二、解题1.窗口函数2.子查询 一、题目 有一个薪水表salaries简况如下: 对所有员工的薪水按照salary降序进行1-N的排名,要求相同salary并列且按照emp_no升序排列: 二、解题 1.窗口函数 SELECT emp_no,salary, DENSE_RANK() OVER(ORDER BY salary DESC) as t_rank FROM salaries 2.子查询 (1)因为比第一个工资大的工资只有0个,其排名为1,所以需要给 count(DISTIN.

weixin_38196290的博客 1417

Panda3d 场景管理

许多简单的 3D 引擎维护一个 3D 模型列表,然后在每一帧对这些模型进行渲染。在这些简单的引擎中,必须分配一个3D模型(或从磁盘加载它),然后将其插入到要渲染的模型列表中。模型在插入到列表中之前对渲染器不“可见”。 Panda3D稍微复杂一些。它不是维护要呈现的对象列表,而是维护要呈现的对象树。对象在插入树之前对渲染器不可见。

u014077947的博客 1383

SQL217 对所有员工的薪水按照salary降序进行1-N的排名

ORDER BY <排序用列清单> )这就是题目中所用到的函数,在计算排序时,若存在相同位次,不会跳过之后的位次。<窗口函数> OVER ( [PARTITION BY <列清单> ]例如,有3条排在第1位时,排序为:1,1,1,4······例如,有3条排在第1位时,排序为:1,1,1,2······例如,有3条排在第1位时,排序为:1,2,3,4······在计算排序时,若存在相同位次,会跳过之后的位次。这个函数赋予唯一的连续位次。*其中[ ]中的内容可以忽略。

11 328

基于龙虾Claw的会议纪要自动提取与重点内容总结办公场景实践

本文介绍如何使用龙虾Claw构建会议纪要自动提取与重点内容总结系统,实现会议内容的智能处理。

一键难忘的博客 254

用 SAP-ABAP-1 把 ABAP 代码读懂:从 Generative AI Hub Orchestration 到 Joule 落地的实战指南

SAP-ABAP-1 是 SAP 推出的 ABAP 专用基础模型,专注于代码解释与理解。它能显著降低企业遗留系统的维护成本,帮助开发人员快速掌握复杂业务逻辑。该模型通过 SAP Generative AI hub 托管,支持 128,000 tokens 的上下文长度,适合分析大型 ABAP 类和 CDS 视图。典型应用场景包括代码解释、迁移辅助和云合规检查。调用需通过 Orchestration service 进行,确保企业级安全治理。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1213

MySQL笔记详解

数据库 1.数据库概念 数据库是什么? 简单的说就是硬盘上的文件,可以存储和管理数据的仓库。数据的仓库(DBMS),方便查询,可存储的数据量大,保证数据的完整、一直,安全可靠。今天主流数据库为关系型数据库管理系统(RDMS使用表格存储数据)。 数据库管理系统(DBMS)的概述, 数据库的发展历程(比较复杂不是很理解可以百度下) 没有数据库,使用磁盘文件存储数据; 层次结构模型数据库; 网状结构模型数据库; 关系结构模型数据库:使用二维表格来存储数据; 关系-对象模型数据库; MySQL就是关..

woaini886353的博客 666

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【sql】SQL23 对所有员工的薪水按照salary降序进行1-N的排名

题目: 对所有员工的薪水按照salary降序进行1-N的排名_牛客题霸_牛客网 有一个薪水表salaries简况如下: emp_no salary from_date to_date 10001 88958 2002-06-22 9999-01-01 10002 72527 2001-08-02 9999-01-01 10003 43311 2001-12-01 9999-01-01 10004 72527

weixin_43955488的博客 558

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【牛客SQL】SQL23 对所有员工的薪水按照salary降序进行1-N的排名

题目描述 描述 有一个薪水表salaries简况如下: 对所有员工的薪水按照salary降序进行1-N的排名,要求相同salary并列且按照emp_no升序排列: 示例1 输入: drop table if exists `salaries` ; CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `salary` int(11) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT N

锥栗的博客 892

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

牛客网刷题笔记-SQL23 对所有员工的薪水按照salary降序进行1-N的排名

SQL23 对所有员工的薪水按照salary降序进行1-N的排名 有一个薪水表salaries简况如下: 对所有员工的薪水按照salary降序进行1-N的排名,要求相同salary并列且按照emp_no升序排列: ——————————————————————————————————————————————————————————————— 我的答案: SELECT emp_no,salary,DENSE_RANK() over(order by salary DESC) as t_rank FROM s

qq_39211004的博客 157

题解-牛客网-SQL-(SQL23)对所有员工的当前薪水按照salary进行按照1-N的排名

文章目录1. 题目描述1.1 输入1.2 输出2. 题目分析及解答2.1 题目分析2.2 详细解答 1. 题目描述 1.1 输入 有一个薪水表salaries简况如下: 1.2 输出 对所有员工的薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列: 2. 题目分析及解答 2.1 题目分析 该题与另一道题(题解-牛客网-SQL-(SQL18)查找当前薪水排名第二多的员工编号emp_no)有一定相似之处,可以互相对照参考。在sqlite不方便使用窗口函数的情况下,应考虑

清溪醉客的博客 204

牛客SQL练习-23-对所有员工的当前(to_date=‘9999-01-01‘)薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列

SELECT s1.emp_no, s1.salary, COUNT( DISTINCT s2.salary ) AS rank FROM salaries s1, salaries s2 WHERE s1.to_date = '9999-01-01' AND s2.to_date = '9999-01-01' AND s2.salary >= s1.salary GROUP BY s1.emp_no ORDER BY s1.salary DESC, s1.emp_.

hmyqwe的博客 244

java按照基本工资排序,23、对所有员工的薪水按照salary进行1-N的排名

对所有员工的当前(to_date=‘9999-01-01‘)薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列CREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL...

weixin_34377037的博客 1220

(较难)SQL练习23:对所有员工的当前薪水按照salary进行按照1-N的排名

SQL练习23:对所有员工的当前薪水按照salary进行按照1-N的排名 题目链接:牛客网 题目描述 对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列。 CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `salary` int(11) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NUL

向日葵的专属太阳 387

23. 对所有员工的薪水按照salary进行按照1-N的排名

题目描述 对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列 CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `salary` int(11) NOT NULL, `from_date` date NOT NULL, `to_date` da...

chenchenchenchenying的博客 278

数据库SQL实践23: 对所有员工的薪水按照salary进行按照1-N的排名

思想: 题目要求对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列。 首先通过条件where s1.to_date='9999-01-01' and s2.to_date='9999-01-01' and s1.salary &lt;= s2.salary 找出员工当前的工资并找出等于和高于它的工...

weixin_43160613的博客 611

SQL做题记录八

SQL23对所有员工的薪水按照salary降序进行1-N的排名 本题的主要思想是复用salaries表进行比较排名,具体思路如下: 1、从两张相同的salaries表(分别为s1与s2)进行对比分析,先将两表限定条件设为to_date = '9999-01-01',挑选出当前所有员工的薪水情况。 2、本题的精髓在于s1.salary <= s2.salary,意思是在输出s1.salary的情况下,有多少个s2.salary大于等于s1.salary,比如当s1.salary=94409时,..

weixin_57321519的博客 87

SQL巧用表的自连接和运算符代替排序的几个例子

MySQL巧用表的自连接和运算符代替排序的几个例子 目录MySQL巧用表的自连接和运算符代替排序的几个例子例1: SQL18例2:SQL87 例1: SQL18 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary 步骤一:自连接并筛选s1.salary <= s2.salary的行 SELECT * FROM salaries AS s1 JOIN salaries AS s2 ON s1.salary <= s2.salary 10004 740

qq_41835091的博客 264
上一篇: SQL24 获取所有非manager员工当前的薪水情况
下一篇: SQL22 统计各个部门的工资记录数
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值