leetcode mysql 第N高的薪水

2021-10-05 02:56:54 字數 1616 閱讀 1275

1、題目:

編寫乙個 sql 查詢,獲取 employee 表中第 n 高的薪水(salary)。

+----+--------+

| id | salary |

+----+--------+

| 1  | 100    |

| 2  | 200    |

| 3  | 300    |

+----+--------+

例如上述 employee 表,n = 2 時,應返回第二高的薪水 200。如果不存在第 n 高的薪水,那麼查詢應返回 null。

+------------------------+

| getnthhighestsalary(2) |

+------------------------+

| 200                    |

+------------------------+

2、解題步驟:

(1) 建立表:      

create table `employee`  (

`id` int(11) not null auto_increment comment 'id',

`salary` decimal(18, 2) default null comment '薪水',

primary key (`id`) using btree

) engine = innodb auto_increment = 7 character set = utf8 collate = utf8_general_ci comment = '員工表' row_format = dynamic;

(2) 插入資料:

insert into `employee` values (1, 100.00);

insert into `employee` values (2, 200.00);

insert into `employee` values (3, 300.00);

insert into `employee` values (4, 400.00);

insert into `employee` values (5, 500.00);

insert into `employee` values (6, 600.00);

(3) 查詢sql:

a、方案一:

select distinct salary

from employee

order by salary desc

limit 3, 1;

b、方案二:

select if(count < 3, null, min) as salary

from (

select min(salary) as min, count(1) as count

from (

select distinct salary

from employee

order by salary desc

limit 3

) a) b;

LeetCode MySQL日期比較函式

leetcode題目 表 weather column name type id int recorddate date temperature int id 是這個表的主鍵 該錶包含特定日期的溫度資訊 編寫乙個 sql 查詢,來查詢與之前 昨天的 日期相比溫度更高的所有日期的 id 返回結果 不要...

leetcode mysql 刪除重複的電子郵箱

1 題目 編寫乙個 sql 查詢,來刪除 person 表中所有重複的電子郵箱,重複的郵箱裡只保留 id 最小 的那個。id email 1 john example.com 2 bob example.com 3 john example.com id 是這個表的主鍵。例如,在執行你的查詢語句之後...

leetcode mysql 從不訂購的客戶

1 題目 某 包含兩個表,customers 表和 orders 表。編寫乙個 sql 查詢,找出所有從不訂購任何東西的客戶。customers 表 id name 1 joe 2 henry 3 sam 4 max orders 表 id customerid 1 3 2 1 例如給定上述 你的查...