Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
leetcode刷题176第二高的薪水
前文
本文为了leetcode数据库类型题目,题目序号为176,主要考察数据库相关知识,题目链接https://leetcode-cn.com/problems/second-highest-salary/。
题目信息
Employee 表: +-------------+------+ | Column Name | Type | +-------------+------+ | id | int | | salary | int | +-------------+------+ id 是这个表的主键。 表的每一行包含员工的工资信息。
编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 。
解题思路
根据题目信息要求,我们需要在数据库表中查到员工表中的第二高薪水。如果直接从表中查询,很容易想到将表中所有数据根据薪水排序的方案。那么我们通过什么才能得到第二高的薪水呢?在mysql中有一个关键字,limit。只需要限制只获取其中的一条,同时对偏移量进行指定。我们需要第二高的,那么设置为limit 1,1即可得到第二条数据。但是这么处理还有个问题,第二条的一定是第二高的么?因此还需要distinct关键字对数据进行唯一化处理,查询出来的源列表中只包含完全不同的数据结果。按此方式即可得到目标的第二高薪水。这道题目主要考察对于mysql中一些关键字的灵活应用。
解题方法
select (select distinct Salary from Employee order by salary desc limit 1,1) as SecondHighestSalary
后记
- 千古兴亡多少事?悠悠。不尽长江滚滚流。