Home
Archive for
2022
Thinkpad T14 Gen1: 0190 Critical low-battery error
RojerChen.2022.05.10
今天使用的 Thinkpad T14 Gen1 發生了 0190 Critical low-battery error,經歷過一番嘗試,終於解救成功,以下是狀況的描述:
- 電腦開機後,跳出 0190: Critical low-battery error 字眼,然後發出逼逼聲後就直接關機。
- 查看字眼應該是電池的電量過低,但是將電源線移除再接上,也沒有跳出充電的顯示燈號。
- 使用電池開機或是接上電源開機,仍舊顯示 0190: Critical low-battery error 字眼,然後發出逼逼聲後就直接關機。
- 開機後,想要按下 enter 進入 Bios,無效。
- 長按電源按鈕,無效,看來沒有執行硬體重置。
LeetCode:185. Department Top Three Salaries
RojerChen.2022.04.25
在練習這個題目的時候,學習到幾個我過去沒用過的語法:
- ROW_NUMBER
- RANK
- DENSE_RANK
- Partition
※資料範例
假設我們的資料如下,資料依據此方式排序 order by Department , Salary desc
※ROW_NUMBER、RANK、DENSE_RANK
ROW_NUMBER:簡單來說就是流水號
RANK:依據排序的條件遞增序號,遇到同樣的資料,下一筆跳號
DENSE_RANK:依據排序的條件遞增序號,同樣資料不跳號
語法使用方式:ROW_NUMBER() OVER( Order by Column desc)
使用語法後的效果是
select
ROW_NUMBER() OVER ( ORDER BY Department , salary DESC ) AS SN,
RANK() OVER ( ORDER BY Department , salary DESC ) AS Rank ,
DENSE_RANK() OVER ( ORDER BY Department , salary DESC ) AS DenseRank ,
* from table1
order by Department , salary desc
可以看到 RANK 的跳號方式與 DENSE_RANK 不同,資料相同就會跳號
※Partition
Partition:依據條件將資料分層,以下面的例子來說,依據Department來分層,所以就可以讓資料在排序上,IT 一組、Sales 一組
語法使用方式:ROW_NUMBER() OVER( Partition by Column Order by Column desc)
selectDENSE_RANK() OVER ( Partition by Department order by Department, salary desc) AS ParitionDenseRank ,* from table1order by Department , salary desc
※LeetCode
回到這題,我自己的覺得可以用以下這樣的方式來處理就可以了
select * from table1 as e1 where salary in ( select top 3 salary from table1 as e2where e1.Department = e2.Department group by salary order by salary desc ) order by Department , salary desc
訂閱:
文章
(
Atom
)