close
MySQL 第N個大(Second Highest)
Problem : https://leetcode.com/problems/second-highest-salary/
code :
select max(age) as SecondHighestSalary
from
(select age, dense_rank() over(order by age desc) as r
from customers) as r
where r = 2;
順序要先從第二個from customers開始,( )內的排序條件是用dense_rank() over( ) 來做,表名稱取作 r ,dense_rank()over( )可以做排序,假如值一樣排名會相同,之後回到第一個from,往下走到where r = 2,他就會找排好順序第2個之後的值們,找到後傳回select max(age)找最大的,最後的表叫SecondHighestSalary。
假如你想要找地大,那就把r = 3,以此類推….
end
文章標籤
全站熱搜