2024-10-16|閱讀時間 ‧ 約 0 分鐘

Leetcode 解鎖 - Rising Temperature (MS SQL SERVER)

哪些日期的 id氣溫比前一天(昨天)的氣溫更高。結果表應以任意順序返回。

結果表的格式如下例所示:

輸入:

輸出:


解釋:

  • 2015-01-02 的氣溫比前一天(2015-01-01)高(10 -> 25)。
  • 2015-01-04 的氣溫比前一天(2015-01-03)高(20 -> 30)。


參考答案

可以使用 SELF JOIN 表格來比較日期前後的氣溫。

SQL 程式碼如下:

SELECT w1.id
FROM Weather w1
JOIN Weather w2 ON DATEDIFF(w1.recordDate, w2.recordDate) = 1
WHERE w1.temperature > w2.temperature;

或是

select DISTINCT A.id
from Weather A
left join Weather B
on A.recordDate = DATEADD(day, 1, B.recordDate)
WHERE A.temperature > B.temperature

解釋:

  • JOIN 用來將表格 Weather 自連接,通過 DATEDIFF 函數來確定兩個日期相差 1 天的情況 (或是使用DATEADD 來做JOIN)
  • WHERE w1.temperature > w2.temperature 用來篩選那些比前一天氣溫更高的記錄。

這樣就可以得到氣溫比前一天更高的日期 id


謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的Threads,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.