1. 程式人生 > >SQL求第二高薪水

SQL求第二高薪水

編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。

Id Salary
1 100
2 200
3 300

例如上述 Employee 表,SQL查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。

SecondHighestSalary
200

解法

一開始的思路,用max()函式查詢兩次

SELECT MAX(e.Salary) AS SecondHighestSalary
FROM Employee e
WHERE e.Salary < (
    SELECT
MAX(Salary) FROM Employee );

但是效率很差,做了兩次查詢

一次結果中查詢第二條

select DISTINCT  Salary from Employee ORDER BY Salary DESC limit 1 offset 1;

結果還是不行,DISTINCT 似乎會使返回值為null的時候返回空,所以外層需要巢狀一層

select (select DISTINCT  Salary from Employee ORDER BY Salary DESC limit 1 offset 1) as SecondHighestSalary;

相關推薦

SQL第二薪水

編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 Id Salary 1 100 2 200 3 300 例如上述 Employee 表,SQL查詢應該返回 200

[LeetCode] Second Highest Salary 第二薪水

Write a SQL query to get the second highest salary from the Employee table. +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 2

leetcode 第二薪水

直接查詢如果不存在第二高的Salary不會返回值,所以應該用子查詢 select (select distinct Salary from Employee order by Salary des

Sql 工資第二(考慮並列)

--題目:Employee表中有ID,Name,Salary三列,求薪資排序第二高的Employee的Name select * FROM [Employee] --等於2時為空,因為有並列第一

Leetcode刷SQL 1、第二薪水

編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+--------+

第二薪水--sql查詢

LEETCODE題目:編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。+----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3

SQL 第二薪水

solution sel from highest 獲取 query des 編寫 mys 編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+--------+ | Id | Salary | +----+--------+

176. 第二薪水

沒有 The 臨時 pro use 如果 ng-if ifnull highest Write a SQL query to get the second highest salary from the Employee table. +----+--------+ |

LeetCode-第二薪水(second-highest-salary)

第二高的薪水 難度 簡單 更多LeetCode答案歡迎大家關注Github: https://github.com/lxyer/LeetCodeAnswer 編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+---

【mysql】 第二薪水

編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300

Leetcode 176. 第二薪水

編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300

LeetCode--176--第二薪水

問題描述: 編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+----

leetcode176:第二薪水

編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300

【Leetcode】176. 第二薪水

題目 編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3

Mysql實現"第二薪水"的兩種方法

寫SQL查詢語句獲得Employee表中第二高的薪水 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3 | 300 | +----+-------

資料庫表,3個欄位,姓名,薪水,部門,用一條sql語句每個部門薪水最高的人姓名

select t1.姓名 from 表 t1, (select max(薪水) 薪水,部門 from 表 group by 部門) t2 where t1.部門=t2.部門 and t1.薪水 = t2.薪水 create table t1 (   NAME VARCH

【Leetcode】Mysql查詢第二薪水

編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 。 +—-+——–+ | Id | Salary | +—-+——–+ | 1 | 100 | | 2

LeetCode #176第二薪水

查詢第二高的資料,思路就是先找到最大值,然後在剩下的資料裡找到比最大值要小的最大值。一開始我的做法是用ifnull函式,但預設值的資料型別會改變薪水的資料型別,ifnull(Salary,null)時遇

Mysql 第二薪水

問題描述: 編寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary) 例如上述 Employee 表,SQL查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null,如下圖。 問題解析:

SQL第N薪水

編寫一個 SQL 查詢,獲取 Employee 表中第 n 高的薪水(Salary)。 Id Salary 1 100 2 200 3 300 例如上述 Employee 表,n = 2 時,應返回第