学习笔记 | SQL刷题 | 对所有员工的薪水按照salary进行按照1-N的排名 DENSE_RANK_请编写sql,对表按照salary从高到低排序_大虎牙的博客-程序员秘密

技术标签: # 数据库 | 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

智能推荐

python中时间的使用_python 时间用法_起点416的博客-程序员秘密

python获取当前时间的用法1.先导入库:import datetime2.获取当前日期和时间:now_time = datetime.datetime.now()3.格式化成我们想要的日期:strftime()比如:“2016-09-21”:datetime.datetime.now().strftime(’%Y-%m-%d’)4.在当前时间增加1小时:add_hour=datetime.datetime.now()+datetime.timedelta(hours=1)5.时间的三种存在方

鸿蒙系统实测如何,鸿蒙2.0系统有什么优点 鸿蒙2.0评测_桔子毛的博客-程序员秘密

华为的鸿蒙系统-直备受争议 ,有人说好有人说不好。然而现在鸿蒙2.0已经公测了, 到底这鸿蒙系统的效果怎么样还得看了它的真实体验了才能知道。用户进行解锁、付款、登陆等行为时系统会主动拉出认证请求,并通过分布式技术可信互联能力,协同身份认证确保正确的人;HarmonyOS 能够把手机的内核级安全能力扩展到其他终端,进而提升全场景设备的安全性,通过设备能力互助,共同抵御攻击,保障智能家居网络安全;Ha...

第一篇博客_weixin_34008933的博客-程序员秘密

这是我第一篇博客,从11年出来实习到6月毕业再到现在,转眼已经一年多了。但是却也凡凡,当初的激情磨灭了不少,现在确实天天浑噩度日,dota,开视频,虽然有时学习,却也收获不多,觉得自己进步比以前慢多了。有人说这是从应届生转入正式程序员的过程,可是我觉得这不是我想要的程序员的生活。 我印象中的程序员是做程序,研究怎样高效的写出一段程序,算法。具体问题的分析...

linux驱动开发9之I2C驱动模型_wangdapao12138的博客-程序员秘密

1.linux设备驱动到底复杂在什么地方?假设soc芯片有两个i2c adapter:i2c_adapter1,i2c_adapter1;然后外部有三个i2c接口的设备i2c_device1,i2c_device2,i2c_device3。现在要求在裸机下写出他们的驱动函数。那么肯定要写出6个不同的驱动函数:i2c_adapter1_ReadWrite_i2c_device1();...

Python3.6+selenium2.53.6自动化测试_上传文件工具:安装及使用(二)_selenium2.53.6压缩包_dengachao的博客-程序员秘密

环境:编辑工具:浏览器:有问题可以联系qq:17763765371、实现需要,编辑bug主题时,可以上传图片富文本点击上传图片---》点击浏览----》选择图片------》打开,完成图片或文件上传2代码WinActivate("文件上传");ControlSetText("文件上传","","Edit1","d:\te...

红色避坑警告:mysql数据库 sum() 函数用法避坑_奔跑-lhs的博客-程序员秘密

场景描述:工作中拿到一个小需求,要求给智能推荐能力做一个简单的推荐量统计与推荐明细记录;SELECT IFNULL(sum(user_id),0) SUM(tks.TOTAL_CLCK_QUT) allCount,SUM(tks.MON_CLCK_QUT) monthCount,SUM(tks.WEEK_CLCK_QUT) weekCount,SUM(tks.DAILY_CLCK_QUT) dayCount FROM t_kc_doc_edit_pus pus JO.

随便推点

JavaScript给多选的select(multiple)赋值_multipleselect 多选赋值_code-jam的博客-程序员秘密

$(".CourseControl").find("option[value=8997]")[0].selected = true; $(".CourseControl").find("option[value=8990]")[0].selected = true; //document.getElementById("cph_CourseControl")[1].selected = t...

删除table表格行_dengmanbi0638的博客-程序员秘密

function getRowObj(obj){ while(obj.tagName.toLowerCase()!="tr") //toLowerCase转化小写 { obj=obj.parentNode;} // 得到父节点 return obj;}function sc(obj) ...

J2EE架构师之路_castle07的博客-程序员秘密

不经意的回首,工作进入第五个年头了,发现走过了从Java程序员到J2EE架构师的历程。发现电脑上安装了各种各样的J2EE工具:JBuilder, WSAD, Eclipse, Rose, Together, Weblogic, Jtest,Optimizator,Mysql...发现电脑上保存了各种各样的OpenSource项目:Tomcat,JBoss,Ant,Hibernate

外观模式_长齐克斯的博客-程序员秘密

基本介绍外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节外观模式可以理解为转换一群接口,客户只要调用一个接口,而不用调用多个接口才能达到目的。比如:在pc上安装软件的时候经常有一键安装选项(省去选择安装目录、安装的组件等等),还有就是手机的重启功能(把关机和启动合为一个操作)。

c++用一级运算比较大小_小猿圈python入门之运算符_weixin_39907713的博客-程序员秘密

学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心——法布尔什么是运算符呢?都有哪些呢?算数运算符比较(关系)运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级python算数运算符以下假设变量a为10,变量b为21:实例:a =50b =10c =2c = a + bprint("1 - c 的值为:", c)c = a - bprint("2 - c 的值为:"...

Lucene中BooleanQuery的MUST和MUST_NOT_lucene mustnot_杨鑫newlfe的博客-程序员秘密

两个MUST取中间的交集这里选择的是package query;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.ap

推荐文章

热门文章

相关标签