赞
踩
- 点击关注公众号,SQL干货及时获取
- 后台回复:1024,获取海量学习资源
- SQL刷题专栏
- SQL145题系列
近日某厂员工爆料,公司程序员因线上流量异常事故,被公司进行处罚。处罚的结果是被要求将去年发的4万多年终奖归还给公司,如果逾期不还,将以每天万分之5的利息收取滞纳金。
该员工还称,公司hr还扬言三个月内还是不还就免费开除。
看到这,我猜大多数人都是这个表情
真是怪事年年有,今年特别多,开年就看到一个这么离谱的事,有网友评论道:
员工累到猝死的时候,也没见老板把命赔给人家啊
真是有风险员工担,有收益自己享,资本家看了都流泪啊。
而且公司有什么权利收取滞纳金?
也有网友支招:不退不接受处罚,书面表达不满,保留邮件,更改账号密码,给总裁班、人力资源、直接主管写,留好写了的证据,按时上班打卡,等他开你然后去仲裁。
很明显该公司的做法不仅无理,也没有相关法律支持,就很下头。
这两年大大小小的公司不是裁员就是降薪,打工人已经活的很不容易了,好不容易盼到年底发个年终奖过年,开年还遇到这档子事,晦气。
不知道有没有读者知晓是哪家公司,欢迎留言大家避坑。
以下是今天的SQL面试题
问题描述
编写一个 SQL 查询,获取 T20240222 表中第二高的薪水(Salary) 。
例如上述 T20240222 表,SQL 查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。
结果如下:
问题解析
SQL Server解法
1、SQL Server中的TOP关键字可以取前N个数,我们可以通过排除 TOP 1 后的结果集再取TOP 1,这样就可以得到第二高的薪资了。因此我们需要先取出工资最高的薪资
2、通过where字句来排除这个最高的薪资,那么剩下的薪资数据再取最高值,那就是第2高的了。
MySQL解法
Mysql中的limit 可以指定获取第N的数,所以相比SQL Server,Mysql可以直接通过limit 1,1 这样的写法来获取排序后的第二高的薪资。
参考答案
- --SQL Server解法
- select (select TOP 1 salary FROM T20240222
- where Salary<>
- (
- select TOP 1 Salary FROM T20240222
- order by Salary desc
- )
- order by Salary desc
- ) as SecondHighestSalary
-
- --MySQL解法
- select ifnull((
- select distinct salary from T20240222
- order by Salary desc
- limit 1,1),null) as SecondHighestSalary
题目来源:《SQL145题》
最后给大家分享我写的SQL两件套:《SQL基础知识第二版》和《SQL高级知识第二版》的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。
有需要的读者可以下载学习,在下面的公众号「数据前线」(非本号)后台回复关键字:SQL,就行
数据前线
- 后台回复关键字:1024,获取一份精心整理的技术干货
- 后台回复关键字:进群,带你进入高手如云的交流群
推荐阅读
- 文章有帮助的话,点个赞或在看吧。
- 谢谢支持
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。