首页 > 数据库 >SQL对所有员工的薪水按照salary降序进行1-N的排名

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

时间:2024-07-04 19:02:22浏览次数:15  
标签:salary 位次 函数 降序 位时 emp SQL 排序

系列文章目录


文章目录


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


描述
有一个薪水表salaries简况如下:
在这里插入图片描述
对所有员工的薪水按照salary降序先进行1-N的排名,如果salary相同,再按照emp_no升序排列:
在这里插入图片描述
这道题目考察的是SQL窗口函数(OLAP函数)中用于排序的专用窗口函数用法
但是由于关系数据库提供支持OLAP用途功能时间不长
还有一部分DBMS不支持这个新功能(比如MYSQL)

select emp_no, salary,
       dense_rank() over (order by salary desc) as rank
from salaries
where to_date='9999-01-01'
order by rank asc,emp_no asc;

下面介绍三种用于进行排序的专用窗口函数:

1、RANK()
在计算排序时,若存在相同位次,会跳过之后的位次。
例如,有3条排在第1位时,排序为:1,1,1,4······

2、DENSE_RANK()
这就是题目中所用到的函数,在计算排序时,若存在相同位次,不会跳过之后的位次。
例如,有3条排在第1位时,排序为:1,1,1,2······

3、ROW_NUMBER()
这个函数赋予唯一的连续位次。
例如,有3条排在第1位时,排序为:1,2,3,4······

窗口函数用法:
<窗口函数> OVER ( [PARTITION BY <列清单> ]
ORDER BY <排序用列清单> )
*其中[ ]中的内容可以忽略

标签:salary,位次,函数,降序,位时,emp,SQL,排序
From: https://blog.csdn.net/pleaseprintf/article/details/140138196

相关文章

  • SQL 统计各个部门的工资记录数
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。描述有一个部门表departments简况如下:有一个,部门员工关系表dept_emp......
  • CTF常用sql注入(二)报错注入(普通以及双查询)
    0x05报错注入适用于页面无正常回显,但是有报错,那么就可以使用报错注入基础函数floor()向下取整函数返回小于或等于传入参数的最大整数。换句话说,它将数字向下取整到最接近的整数值。示例:floor(3.7)返回3floor(-2.5)返回-3round()四舍五入函数将传入的数字四......
  • SAAS下一个mysql实例多个租户的库
    在多租户环境中,根据tenantCode字段动态切换数据库是常见的需求。这里将展示如何在SpringBoot和MyBatis项目中实现这一功能,具体步骤包括配置数据源、定义数据源路由逻辑以及在业务代码中使用。1.配置数据源首先,你需要为你的应用配置一个主数据源,这个数据源将被用于连接到包含所......
  • Windows 安装DBeaver,并使用DBeaver进行数据库的操作(达梦数据库、MySQL数据库等)
    安装DBeaver可视化工具安装前准备准备环境JDK17DBeaver安装包达梦数据库驱动DBeaver代理包开始安装MySQL连接&操作MySQL连接操作达梦数据库连接&操作达梦数据库驱动DBeaver加载达梦数据库驱动达梦数据库连接操作免责声明安装前准备准备环境JDK17安装地址(官......
  • c++ 之连接sqlite数据库(vsode)
    Tasks.json中添加配置"-lsqlite3"#include<sqlite3.h>#include<iostream>#include<errno.h>staticintcallback1(void*NotUsed,intargc,char**argv,char**azColName){inti;for(i=0;i<argc;i++){printf("%s=%s\n&quo......
  • django models对应的mysql类型
    Django模型字段类型与MySQL数据库类型的对应关系如下:Django模型字段类型MySQL数据库类型AutoFieldBIGINTUNSIGNEDCharFieldVARCHARIntegerFieldINTDecimalFieldDECIMALDateFieldDATEDateTimeFieldDATETIMEFileField,ImageFieldVARCHAR(用于文件路径)BooleanFieldBOOL(如......
  • MySQL单表千万级数据查询优化大家怎么说(评论有亮点)
    题图来自APOD上次写了一篇MySQL优化实战的文章“MySQL千万级数据从190秒优化到1秒全过程”。这篇文章主要还是在实战MySQL优化,所以从造数据到查询SQL优化SQL都没有业务或者其它依赖,优化的技巧也不涉及软件架构就是纯SQL优化。由于笔者经验有限和篇幅限制没有展开讲很多细节,其......
  • mysql日志
    日志类型查询日志日志类型描述查询文件开启方式一般查询日志记录服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,generallog都会将其记录下来SHOWVARIABLESLIKE'general_log_file';SETGLOBALgeneral_log='ON';慢......
  • MySQL—常用的数据类型
    数据类型整型1.创建一个含有无符号/有符号整型的字段的表CREATETABLEL1( idtinyintunsigned#无符号)CREATETABLEL2( idtinyint#默认为有符号)数值型(bit)2.数值型(bit)的使用小数3.数值型(小数)的基本使用 字符串4.字符串的基本使用#演示字符......
  • MySQL5.7.x绿色版安装过程
    MySQL5.7.x绿色版安装过程记一下自己安装MySQL的过程,方便以后用官网下载MySQL5.7.x绿色版压缩包我这里使用的是mysql-5.7.42-winx64.zip解压,并配置环境变量(可选)环境变量要配置到MySQL目录下的bin目录例如:C:\DevelopmentTools\mysql-5.7.42-winx64\bin在MySQL目录......