学习笔记 | SQL刷题 | 对所有员工的薪水按照salary进行按照1-N的排名 DENSE_RANK_使用年薪排序 sql-程序员宅基地

技术标签: # 数据库 | SQL  sql排序  sql  

题目描述

对所有员工的当前(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,
PRIMARY KEY (`emp_no`,`from_date`));

在这里插入图片描述

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;
  • 这道题目考察的是 SQL窗口函数(OLAP函数) 中用于排序的专用窗口函数用法,但是由于关系数据库提供支持OLAP用途功能时间不长,还有一部分DBMS不支持这个新功能(比如MYSQL)。
下面介绍三种用于进行排序的专用窗口函数

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 <排序用列清单> )

*其中[ ]中的内容可以忽略

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34170700/article/details/106576128

智能推荐

使用Eclipse中Debug模式调试代码案例_eclipse debug 改变代码-程序员宅基地

文章浏览阅读128次。在eclipse中运行程序出现错误,可以使用断点+debug运行来找出错误所在,并解决错误。首先,在觉得会出错的地方,标上断点。在代码行数前鼠标单击下就标上断点了,如图中红线所标。然后点击会弹出这样一个窗口点击 Yes 会进入debug运行模式。如下:这里有几个快捷键 f6 f8 f51.表示当前实现继续运行直到下一个断点,快捷键为F8。2.表示打断整个进程3.表示进入当前方法..._eclipse debug 改变代码

jQuery+Ajax+asp进行数据库交互01_asp+javascript+数据库 菜单-程序员宅基地

文章浏览阅读3.9k次,点赞3次,收藏10次。在之前写的ADO操作中,每次进行数据库操作时,都会对网页进行刷新。之后,在了解jQuery(javascript库)和Ajax(异步响应)后,可以不再刷新整个网页,完成页面的响应事件。在前端代码中,使用jQuery的Ajax方法将数据传递到服务器后台中。_asp+javascript+数据库 菜单

PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes)-程序员宅基地

文章浏览阅读8.8k次,点赞2次,收藏13次。原文连接:https://www.wjcms.net/archives/2020-10-05-20-03-19今天在使用composer安装扩展包时报错,如下:PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///www/server/php/74/bin/composer/src/Composer/DependencyResolver/S_allowed memory size of 1610612736 bytes exhausted

Java实现输入年份,输出对应的生肖年_编写一个应用程序,java输入一个年份,判断在该年出生的人的生肖并在控制台进行输出-程序员宅基地

文章浏览阅读1.4w次,点赞12次,收藏55次。摘要:  十二生肖的排序:鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪提示:  可以利用switch语句实现语法: switch(表达式){ case 值1: 表达式的值和 值1匹配上了,需要执行的代码; break; case 值2: 表达式的值和 值2匹配上了,需要执行的代码; break; case..._编写一个应用程序,java输入一个年份,判断在该年出生的人的生肖并在控制台进行输出

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean wit-程序员宅基地

文章浏览阅读1w次。项目场景:个人解决方法的简单记载,吸取一下教训,一天忘记Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘testallServiceImpl’: Unsatisfied dependency expressed through field ‘baseMapper’; nested exception is org.springframew_caused by: org.springframework.beans.factory.unsatisfieddependencyexception:

WebDriver自动化测试框架详解_webdriver 详解-程序员宅基地

文章浏览阅读3.4k次,点赞5次,收藏27次。webDirver自动化测试框架详解一、 简介WebDriver API相对于Selenium Remote Control API来说,虽然同样是控制浏览器,但它的编程接口更加简洁WebDriver可以应对那些网页本身不重新加载的动态网页。Selenium Remote Control是采用向浏览器注入javascript脚本来控制浏览器的,但WebDriver与之不同,它是直接使用..._webdriver 详解

随便推点

xshell查看某个时间段的日志_shell 查看一段区间的messages日志-程序员宅基地

文章浏览阅读6.5k次。这是查看9:45到10:00的日志 有点复杂 但是好用grep-E'09:(4[5-9]|5[0-9])|10:(0[0-9]|[1-3][0-9]|4[1-5])'日志文件其他常用命令:1:cd 是进入下一级目录命令  例如:cd /folder1/folder2/folder32:复制文件:cp -r 【需要复制的文件名】/ 【复制成的文件名】..._shell 查看一段区间的messages日志

python设置标题、轴标签、刻度标签_python ax.title-程序员宅基地

文章浏览阅读3.5k次。python设置标题、轴标签、刻度标签(ticker部分)import numpy as npimport matplotlib.pyplot as pltplt.figure()x = np.arange(0,10,1) #这个函数的第三个参数表示的是步长,以此进行划分z = x**2y = np.linspace(1,10,10) #这个函数的第三个参数表示的是用几个点去划分,作为y的值plt.plot(x,z,color = 'red',linewidth=1.0,linest_python ax.title

wamp 使用mysql_wamp中MySQL控制台的基本操作-程序员宅基地

文章浏览阅读407次。输入命令注意:1、命令结束符号是分号;2、所有的符号都是英文半角3、只有遇到分号 MySQL才人文结束4、多个命令用分号隔开 create database stu;drop database stu5、引号要打全 不然分号都不让出常用操作的单词 : create(创建)、use(使用)、drop(删除)、show(显示)、databases(数据库)、table(表)一、在环..._wtumyq

antd-vue使用--tabs切换重复触发事件_a-tab-pane人工触发切换-程序员宅基地

文章浏览阅读7.7k次,点赞2次,收藏6次。tab越多,点击切换tab时,触发的次数越多,如果在里面渲染组件,会造成组件多次执行生命周期解决方案:增加 v-if="activeKey === pane.key" 判断,不是切换的key不渲染<a-tabs v-model="activeKey" type="editable-card" @change="changeTab" @edit="onEdit"> <a-tab-pane v-for="pane in panes" :key="._a-tab-pane人工触发切换

着手实现一个图片选择器-PhotoPicker_kotlin图片选择器-程序员宅基地

文章浏览阅读3.8k次。相信很多朋友在开发安卓App时都会有这样需求,图片选择或拍照选择,需求实现很简单,如下: - 图片选择:调用系统图库进行选择 - 拍照选择:调用系统相机进行拍照看了上面的实现后发现很容易啊,都有现成的调用;但我们错了,对于产品的BT需求,我们远远无法这么简单的满足,比如:图片多选上传了?额,这个时候我们调用系统的图库就蒙B了,因为系统图库并不支持多选;那怎么办了?不急,请慢慢往下看_kotlin图片选择器

文献阅读-ICRA2020-从单眼内窥镜图像中对手术机器人器械的柄姿势估计_显微外科 计算机视觉-程序员宅基地

文章浏览阅读774次。文章序号、所属单元及链接:1630-Computer Vision for Medical Robots一作所属单位:University of Tokyo读后体会:以我浅薄的学术认知来看这篇论文最大的创新点在于使用CG数据进行数据扩充,其他好像没什么特别有价值的。从单眼内窥镜图像中对手术机器人器械的柄姿势估计AbstractIntroductonA.相关工作B.当前方法的局限性C.贡献说明Problem StatementMethodsA.训练数据集B.其他训练方法C.网络架构EvaluationC_显微外科 计算机视觉

推荐文章

热门文章

相关标签