SQL试题:找出数据表中薪水第二高的员工

15 sec read

为了挑战一下自己刚学的SQL知识,找了还算流行的题目:寻找数据表中薪水第二高的员工,也算是巩固下自己刚学的知识。

目前接触的是SQL Server,所以以下代码可能无法在其他数据库上运行。

一、用尽可能多的方案来查找

方案1:

方案2:

方案3:

前面3个方案都比较好理解,但是并不是都是正确的,如果有两个第二名存在,方案2和方案3就是不能满足原始需求的。

方案4:

方案5:

方案6:

方案4、5、6最主要的是几个关键词的区别,需要在使用的时候注意,ROW_NUMBER()就是按照1234的顺序进行排列的,类似自增长;DENSE_RANK()则是按名次排列,相同的名次如果有多位,后面的名次是不受影响的。如,第二名有两位,第三名还是会存在,与之相对的是RANK(),如果第二名2位,则排名直接跳到第四名。

具体请参考:

http://msdn.microsoft.com/zh-cn/library/ms186734.aspx

http://technet.microsoft.com/zh-cn/library/ms173825.aspx

http://technet.microsoft.com/zh-cn/library/ms176102.aspx

方案7:

上面的SQL非常的绕,具体的也一下子届时不清楚。

方案8:

方案8是SQL Server 2012才支持的语句,有了这个方法对于SQL Server的分页来说就简单了。

具体请参考:http://technet.microsoft.com/zh-cn/library/gg699618.aspx

 

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

含C/C++代码包Anaconda安装问题

上篇文章主要讲了libffm在Windows系统下安装遇到的问题,今天在Linux环境下的Anaconda中安
1 min read

FFM/libffm在Windows上的使用

FFM 的作者Yu-Chin Juan在GitHub上开源了C++版本的代码libffm,由于日常的数据处理都
5 min read

使用Python获取照片Exif信息

什么是Exif? Exif(Exchangeable image file format)是专门为数码相机的照
4 min read

发表评论

电子邮件地址不会被公开。 必填项已用*标注