[LeetCode] 197.気温上昇Weather テーブルが指定されている場合、前の日付 (昨日の日付) と比較して気温が高いすべての日付の ID を検索する SQL クエリを記述します。
たとえば、上記の Weather テーブルに対して次の ID を返します。
この問題では、天気表が与えられ、前日よりも気温が高い ID を見つけるように求められます。ID は必ずしも順番に並べられているわけではないので、日付に基づいて前日を見つける必要があります。MySQL 関数 Datadiff を使用して、2 つの日付の差を計算できます。制約は、気温が高く、日付の差が 1 であることです。以下のコードを参照してください。 解決策1: 天気 w1、天気 w2 から w1.Id を選択 w1.Temperature > w2.Temperature かつ DATEDIFF(w1.Date, w2.Date) = 1; 次のソリューションでは、MySQL TO_DAYS 関数を使用して日付を日数に変換し、残りは上記と同じです。 解決策2: 天気 w1、天気 w2 から w1.Id を選択 w1.Temperature > w2.Temperature かつ TO_DAYS(w1.Date) = TO_DAYS(w2.Date) + 1 の場合; 以下のコードに示すように、Subdate 関数を使用して日付から 1 を減算することもできます。 解決策3: 天気 w1、天気 w2 から w1.Id を選択 w1.Temperature > w2.Temperature かつ SUBDATE(w1.Date, 1) = w2.Date; 最後に、まったく異なるソリューションが使用されます。2 つの変数 pre_t と pre_d は、それぞれ前回の気温と前回の日付を表すために使用されます。現在の気温は前回の気温よりも高く、日付の差は 1 である必要があります。上記の 2 つの条件が満たされている場合は、それが Id として選択され、そうでない場合は NULL になります。次に、pre_t と pre_d が現在の値に更新され、選択された Id は空ではありません。 解決策4: SELECT ID FROM ( SELECT CASE WHEN Temperature > @pre_t AND DATEDIFF(Date, @pre_d) = 1 THEN Id ELSE NULL END AS Id, @pre_t := 温度、@pre_d := 日付 FROM Weather、(SELECT @pre_t := NULL, @pre_d := NULL) AS init ORDER BY Date ASC ) id が NULL ではない場合; 参考文献: https://leetcode.com/discuss/33641/two-solutions https://leetcode.com/discuss/52370/my-simple-solution-using-inner-join https://leetcode.com/discuss/86435/a-simple-straightforward-solution-and-its-very-fast これで、LeetCode (197. 気温上昇) の SQL 実装に関するこの記事は終了です。気温上昇の SQL 実装に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 検索ボックスのデフォルトテキストを設定します。マウスをクリックするとデフォルトテキストは消えます。
>>: レスポンシブなアコーディオン効果を実現するための CSS3 の詳細な説明
目次プロトタイプを理解するプロトタイプオブジェクトを理解するインスタンスプロパティとプロトタイププロ...
序文最近、仮想マシンを使用して Ubuntu 18.04 をインストールしました。クローン作成後、I...
序文docker run がコンテナを作成して実行するときに、-p を使用してポート マッピング ル...
目次1. 配列の役割: 2. 配列の定義: 1. コンストラクタを通じて配列を作成する2. リテラル...
目次1. デバッグ対象2. WebSocketの機能3. ソケット接続を確立する3.1 部屋の作成方...
目次1. 配列を結合する2. 配列をマージする(最初に) 3. 配列の複製4. 構造化分解割り当て5...
Harborのインストールは非常に簡単ですが、Dockerログインで行き詰まってしまいました。このブ...
MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...
コンテナが起動した後まず管理者にログインして新しいユーザーを作成してください $ docker ex...
導入dockerコンテナとdocker-composeに基づいて、Linux環境でのdockerの基...
成果を達成する 実装コードhtml <div id=コンテナ> いらっしゃいませ <...
こんにちは、みんな!技術の話ばかりで髪は切らないトニーです。データベース関数は、何らかの機能を持ち、...
アイデア: 最初にランダムに並べ替えてからグループ化します。 1. テーブルを作成します。 テーブル...
Vue - シャトルボックス機能を実装します。効果図は次のようになります。 CS 。移行{ ディスプ...