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

 
arrow
arrow
    文章標籤
    mysql語法
    全站熱搜
    創作者介紹
    創作者 佑佑 的頭像
    佑佑

    佑佑的語言

    佑佑 發表在 痞客邦 留言(0) 人氣()