学习笔记 | 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

智能推荐

Spring Boot(二) -- banner 配置_知性人的博客-程序员秘密

  banner 配置,无关紧要的配置,就是我们在启动项目时显示的 log ,如下:自定义横幅  我们可以通过向banner.txt类路径添加文件或将spring.banner.location属性设置为此类文件的位置来更改启动时打印的横幅。  通过向 banner.txt 类路径添加文件:我们在 resources 目录下自定义添加 banner.txt 文件,内容自定义,小编随便定义的...

梯度下降优化算法概述1_qq_32790593的博客-程序员秘密

译 梯度下降优化算法概述 2017年10月08日 21:41:19 secondsilverman 阅读数:2474 &amp;lt;span class=&quot;tags-box artic-tag-box&quot;&amp;gt; &amp;lt;spa...

ios 地图黑屏_ios – 导航控制器显示黑屏_weixin_39943586的博客-程序员秘密

我正在学习iOS开发并遇到导航控制器的一些问题.我创建了一个SingleView应用程序,然后使用“嵌入导航控制器”来获得导航控件.我遇到的问题是,在应用程序成功构建之后,只有导航栏可见,其他UI组件只是纯黑色.我试过真正的设备,清理/重建,删除应用程序&amp;重建,都得到了相同的结果.以下是截图:故事板的屏幕截图:单击导航控制器时:我已经尝试更新约束和框架,因此没有琥珀色三角形警告.已经勾选了...

翻页效果的RecyclerView_recyclerview翻页效果_擦肩的阳光的博客-程序员秘密

实现一个自定义LayoutManager,默认只有一个抽象方法,实现的重点在于onLayoutChildren对页面的布局和滑动操作,当然还有缓存。属性定义mPosition是当前item的位置信息,mPositionOffset是偏移信息,mMinVy是最低的y方向的速度,这个需要根据不同屏幕尺寸来定。private static final int MIN_VY = 300;pr...

pyqt函数QFileDialog.getOpenFileName出现错误argument 1 has unexpected type 'Ui_Form'_giaming023的博客-程序员秘密

错误信息:TypeError: getOpenFileName(parent: QWidget = None, caption: str = ‘’, directory: str = ‘’, filter: str = ‘’, initialFilter: str = ‘’, options: Union[QFileDialog.Options, QFileDialog.Option] = 0)...

JAVAWeb对ajax中get与post的使用_科皮子菊的博客-程序员秘密

JAVAWeb对ajax中get与post的使用01.使用背景及ajax的介绍02.ajax的一些属性03.使用案例03.1.基本介绍03.2.代码详解03.3.代码运行结果04.总结JAVAWeb对ajax中get与post的使用01.使用背景及ajax的介绍在进行javaWeb的开发中难免会遇到异步请求的情况,为了使网站局部的信息发生变化,而不影响...

随便推点

spring data jpa 实体类中字段不与数据库表映射_千百元的博客-程序员秘密

在类的字段中加注解 @[email protected] String name ;//服务商名称​​​​​​​@Transientprivate String mobile;//服务商联系人

基于QWidget绘制蛛网图_qt之“蛛网图”自绘控件_wangxsv5的博客-程序员秘密

最近因项目需要绘制蛛网图,雷达图,于是就参考了https://blog.csdn.net/chyuanrufeng/article/details/76222533的文章,在此基础上做以修改,达到了自己想要的效果。在此感谢这位博主的分享,话不多说上代码。实现的效果图:源码如下 RadarChart.h#ifndef RADARCHART_H#define RADARCHART_H#include ...

VLC做客户端解Rtsp码流_c++ vlc rtsp_yejun556688的博客-程序员秘密

RTSP流解码为RGBA数据。VLC版本2.1.3vs 2008.为了从Rtsp地址获取实时帧数据,看了Live555和VLC的一些Demo。VLC作为Rtsp的客户端,拉网络视频流。然后进行实时解码(内部进行),自己获得码流(RGBA数据,32位RGB),显示.[cpp] view plaincopyprint?"code" cla

TensorFlow基础入门_tensorflow菜鸟教程_菜鸟成长之路-wei的博客-程序员秘密

神经网络前向传播# 神经网络--前向传播import tensorflow as tf# 2*3的矩阵 变量w1 = tf.Variable(tf.random_normal((2,3),stddev=1,seed=1)) # 随机矩阵,标准差是1,随机种子是1,意味着w1和w2是一模一样的# 3*1的矩阵w2 = tf.Variable(tf.random_normal(...

窗口非客户区的绘制_wm_activateapp用法[email protected]@的博客-程序员秘密

1.根据需要,要改变nc区的大小. 响应WM_NCCALCSIZE可改变nc区的大小.关键在于lParam,msdn上说当wParam为True时, lParam为LPNCCALCSIZE_PARAMS的指定,当wParam为False时为LPRECT,做了些实验发现 只有第一次时wParam为False,LPNCCALCSIZE_PARAMS的语义相当复杂,不过我们只用 看第一个RECT就成.它

推荐文章

热门文章

相关标签