1. 程式人生 > >【LeetCode】197.上升的溫度 學習筆記

【LeetCode】197.上升的溫度 學習筆記

197.上升的溫度

給定一個Weather表,編寫一個SQL查詢來查詢與之前(昨天的)日期相比溫度更高的所有日期的id

用到的表和資料SQL:

  1. -- ----------------------------
  2. -- Table structure for `weather`
  3. -- ----------------------------
  4. DROPTABLE IF EXISTS `weather`;  
  5. CREATETABLE `weather` (  
  6.  `Id` int(11) DEFAULTNULL,  
  7.  `RecordDate` dateDEFAULTNULL,  
  8.  `Temperature` int(11) 
    DEFAULTNULL
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;  
  10. -- ----------------------------
  11. -- Records of weather
  12. -- ----------------------------
  13. INSERTINTO `weather` VALUES ('1','2015-01-01''10');  
  14. INSERTINTO `weather` VALUES ('2','2015-01-02''25');  
  15. INSERTINTO `weather` VALUES ('3','2015-01-03''20');  
  16. INSERTINTO
     `weather` VALUES ('4','2015-01-04''30');  

答案:

方法一:我們可以使用MySQL的函式Datadiff來計算兩個日期的差值,我們的限制條件是溫度高且日期差1,參見程式碼如下:

  1. select w1.Id from weather w1  
  2. innerjoin weather w2 on w1.Temperature > w2.Temperature and DATEDIFF(w1.RecordDate, w2.RecordDate) = 1;  

方法二:下面這種解法我們使用了MySQLTO_DAYS函式,用來將日期換算成天數,其餘跟上面相同:

  1. SELECT
     w1.Id FROM Weather w1, Weather w2  
  2. WHERE w1.Temperature > w2.Temperature AND TO_DAYS(w1.RecordDate)=TO_DAYS(w2.RecordDate) + 1;  

解法三:我們也可以使用Subdate函式,來實現日期減1,參見程式碼如下:、

  1. SELECT w1.Id FROM Weather w1, Weather w2  
  2. WHERE w1.Temperature > w2.Temperature AND SUBDATE(w1.RecordDate, 1) = w2.RecordDate;  

思路:可以使用 datediff 函式,判斷日期的差值為1,。

相關推薦

LeetCode197.上升溫度 學習筆記

197.上升的溫度給定一個Weather表,編寫一個SQL查詢來查詢與之前(昨天的)日期相比溫度更高的所有日期的id。用到的表和資料SQL:-- ------------------------------ Table structure for `weather`-- --

LeetCode197.上升溫度

197.上升的溫度給定一個Weather表,編寫一個SQL查詢來查詢與之前(昨天的)日期相比溫度更高的所有日期的id。用到的表和資料SQL:-- ----------------------------

LeetCode626.換座位-學習筆記-對行數的轉換

小美是一所中學的資訊科技老師,她有一張seat座位表,平時用來儲存學生名字和與他們相對應的座位 id。其中縱列的id是連續遞增的小美想改變相鄰倆學生的座位。你能不能幫她寫一個 SQL query 來輸出小美想要的結果呢?答案:方法一:按題目的要求,對所有資料進行拆分,1、2互

LeetCode627.交換工資-學習筆記-IF函式的使用

IF 表示式IF( expr1 , expr2 , expr3 )expr1 的值為 TRUE,則返回值為 expr2 expr1 的值為FALSE,則返回值為 expr3如下:SELECT IF(TRUE,1+1,1+2); -> 2 SELECT IF(FALSE,1+1,1+2); ->

04蒙特卡洛樹入門學習筆記

alter ike cnblogs append 最大的 有趣的 控制理論 空間 nod 蒙特卡洛樹學習筆記 1. 強化學習(RL) 概念 ? 強化學習是機器學習中的一個領域,強調如何基於環境而行動,以取得最大化的預期利益。其靈感來源於心理學中的行為主義理論,即有機體如何

DatabaseMysql分散式叢集學習筆記

一、sql 的基本操作 (1)資料庫相關操作 建立資料庫、檢視資料庫、刪除資料庫 #1. 建立資料庫 create database mytest default charset utf8; #2. 檢視資料庫 show databases; #3. 刪除資料庫 drop database myt

原創python遊戲pygame學習筆記(2)--pie遊戲--還要DEBUG

# -*- coding:utf-8 -*- import pygame import sys from pygame.locals import * import math color=200,80,60 width=4 x=300 y=250 radius=2

分類 - Cucumber測試工具學習筆記

個人簡介 如果對測試比較感興趣的可以加QQ群:320542475! 如果你願意,我們可以聊聊測試的那點事,相互學習、互相成長,我相信只要不斷吸取自己所需營養,即使出生不那麼光彩,在未來依然會光芒萬丈,只是在前進的路上荊棘多了一點而已、、、

分類 - 安全滲透測試學習筆記

個人簡介 如果對測試比較感興趣的可以加QQ群:320542475! 如果你願意,我們可以聊聊測試的那點事,相互學習、互相成長,我相信只要不斷吸取自己所需營養,即使出生不那麼光彩,在未來依然會光芒萬丈,只是在前進的路上荊棘多了一點而已、、、

專欄 - YUV視訊格式學習筆記

1、李遲,男,已過而立。計算機專業,曾系統自學51、AVR、ARM7、ARM9、Linux。曾從事嵌入式ARM-Linux全棧開發,從uboot到核心驅動底層、檔案系統以及上層應用,差不多摸了個遍。也會點MFC,視訊編解碼。熱衷開源和分享。 2、目前已轉行做技術管理+寫程式碼、devops

Keras中文文件學習筆記-快速上手Keras

基於中文官方文件與英文官方文件的學習筆記,較系統的總結學習歷程。 Keras是一個高層神經網路API,Keras由純Python編寫而成並基Tensorflow、Theano以及CNTK後端。Keras 為支援快速實驗而生,能夠把你的idea迅速轉換為結果,如

PMPHead First PMP 學習筆記 第十一章 風險管理

第十一章 風險管理 計劃再仔細的專案也會遇到麻煩。 什麼是風險 風險是任何可能影響專案的不確定時間或狀況,但並非所有風險都是負面的 風險(risk) 事件(event) 狀況(condition) 機會(opporunity) 風險偏好。為了預期的回

PMPHead First PMP 學習筆記 第四章 專案整合管理

第四章 專案整合管理 專案經理每天的工作 力保專案順利進行 緊密監督以確保計劃進行 計劃本身不完善需要予以修正 即使是更大的專案的子專案,也要有收尾的過程 6個整合管理過程 整合管理劃分為6個過程,專案經理必須掌握的核心職責。 1.制

LeetCode185. 部門工資前三高的員工 學習筆記

Employee 表包含所有員工資訊,每個員工有其對應的 Id, salary 和 department Id 。+----+-------+--------+--------------+ | Id | Name | Salary | DepartmentId | +--

LeetCode620.有趣的電影-學習筆記-MOD()函式的使用

某城市開了一家新的電影院,吸引了很多人過來看電影。該電影院特別注意使用者體驗,專門有個 LED顯示板做電影推薦,上面公佈著影評和相關電影描述。作為該電影院的資訊部主管,您需要編寫一個 SQL查詢,找出所有影片描述為非boring(不無聊)的並且id 為奇數的影片,結果請按等級

視頻編解碼·學習筆記3. H.264視頻編解碼工程JM的下載與編解碼

tro 關鍵幀 isa 源文件 完成 -m decode orm mat 一、下載JM工程: JM是H.264標準制定團隊所認可的官方參考軟件。網址如下 http://iphome.hhi.de/suehring/tml/ 從頁面中可找到相應的工程源碼,本次選擇JM 8

視頻編解碼·學習筆記6. H.264碼流分析工程創建

clear href mark 一個 html filename down 創建 fail 一、準備工作: 新建一個VS工程SimpleH264Analyzer, 修改工程屬性參數-> 輸出目錄:$(SolutionDir)bin\$(Configuration)\,

視頻編解碼·學習筆記7. 熵編碼算法:基礎知識 & 哈夫曼編碼

html 節點 表示 效率 article tchar vector nod code 一、熵編碼概念: 熵越大越混亂 信息學中的熵: 用於度量消息的平均信息量,和信息的不確定性 越是隨機的、前後不相關的信息,其熵越高 信源編碼定理: 說明了香農熵越信源符號概率之間的

視頻編解碼·學習筆記8. 熵編碼算法:基本算法列舉 & 指數哥倫布編碼

方法 mark enter 協議 int 十進制數 pan 進制數 tab 一、H.264中的熵編碼基本方法: 熵編碼具有消除數據之間統計冗余的功能,在編碼端作為最後一道工序,將語法元素寫入輸出碼流 熵解碼作為解碼過程的第一步,將碼流解析出語法元素供後續步驟重建圖像使用

視頻編解碼·學習筆記11. 提取SPS信息程序

上一個 img http config efi 技術分享 小寫 strong 類型 一、準備工作: 回到之前SimpleH264Analyzer程序,找到SPS信息,並對其做解析 調整項目目錄結構: 修改Global.h文件中代碼,添加新數據類型UINT16,之前編寫的工