SQLで連続するレコードの比較をする(LeetCode Database)
概要
前回に引き続きSQLです。
問題
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| id | int |
| recordDate | date |
| temperature | int |
+---------------+---------+
今回用意されているテーブルは以上です。
以下のように、前日よりも気温が気温が高かった日のレコードのid
を表示してください、という問題です。
解法
SELECT w1.Id
FROM Weather w1, Weather w2
WHERE w1.Temperature > w2.Temperature AND subdate(w1.recordDate, 1) = w2.recordDate
テーブルを二つ用意し、subdate
関数を使うことで時間の差を求めます。
売り上げが前日よりも上の日とか抜き出すのに使えそうなSQLとなりました。
SQLは列の比較には強くても、行の比較は思ったより苦手ということを改めて感じました。
コメント
コメントを投稿