[LeetCode] 197.Steigende TemperaturSchreiben Sie für eine Wettertabelle eine SQL-Abfrage, um die IDs aller Daten zu finden, bei denen die Temperatur im Vergleich zum vorherigen (gestrigen) Datum höher ist.
Geben Sie beispielsweise die folgenden IDs für die obige Wettertabelle zurück:
Diese Frage gibt uns eine Wettertabelle und fordert uns auf, die ID mit einer höheren Temperatur als am Vortag zu finden. Da die IDs nicht unbedingt in der richtigen Reihenfolge angeordnet sind, müssen wir den Vortag anhand des Datums finden. Wir können die MySQL-Funktion Datadiff verwenden, um die Differenz zwischen zwei Daten zu berechnen. Unsere Einschränkung ist, dass die Temperatur hoch ist und die Datumsdifferenz 1 beträgt. Siehe den Code unten: Lösung 1: SELECT w1.Id FROM Wetter w1, Wetter w2 WO w1.Temperatur > w2.Temperatur UND DATEDIFF(w1.Datum, w2.Datum) = 1; Die folgende Lösung verwendet die MySQL-Funktion TO_DAYS, um das Datum in Tage umzuwandeln, der Rest ist gleich wie oben: Lösung 2: SELECT w1.Id FROM Wetter w1, Wetter w2 WO w1.Temperatur > w2.Temperatur UND HEUTE(w1.Datum) = HEUTE(w2.Datum) + 1; Wir können auch die Subdate-Funktion verwenden, um 1 vom Datum abzuziehen, wie im folgenden Code gezeigt: Lösung 3: SELECT w1.Id FROM Wetter w1, Wetter w2 WO w1.Temperatur > w2.Temperatur UND SUBDATE(w1.Datum, 1) = w2.Datum; Schließlich wird eine völlig andere Lösung verwendet. Zwei Variablen, pre_t und pre_d, werden verwendet, um die vorherige Temperatur bzw. das vorherige Datum darzustellen. Die aktuelle Temperatur muss höher sein als die vorherige Temperatur und der Datumsunterschied beträgt 1. Wenn die beiden oben genannten Bedingungen erfüllt sind, wird sie als ID ausgewählt, andernfalls ist sie NULL. Dann werden pre_t und pre_d auf die aktuellen Werte aktualisiert und die ausgewählte ID ist nicht leer: Lösung 4: Wählen Sie ID aus ( SELECT CASE WHEN Temperatur > @pre_t UND DATEDIFF(Datum, @pre_d) = 1 DANN Id SONST NULL END AS Id, @pre_t := Temperatur, @pre_d := Datum VON Wetter, (SELECT @pre_t := NULL, @pre_d := NULL) AS init ORDER BY Datum ASC ) id, wobei ID nicht NULL ist; Quellen: 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 Dies ist das Ende dieses Artikels über die SQL-Implementierung von LeetCode (197. Steigende Temperatur). Weitere relevante Inhalte zur SQL-Implementierung steigender Temperaturen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: Detaillierte Erläuterung von CSS3 zum Erzielen eines reaktionsschnellen Akkordeoneffekts
Um zu verhindern, dass nicht konforme Daten in di...
Um mit Standard-CSS3 den Schatteneffekt eines Ele...
Dieser Artikel stammt ursprünglich von 123WORDPRE...
1. Schrifteigenschaften Farbe, gibt die Farbe des...
Vorwort Die Verwendung von CSS zum Generieren gep...
Inhaltsverzeichnis SQL verstehen SELECT verstehen...
Bei der Installation von tortoiseGit gab es immer...
Merkmale einer Single-Page-Anwendung „Annahme:“ A...
Lernprogramm zum Hyperlink-Tag einer HTML-Webseit...
In diesem Artikel wird der spezifische Code von V...
Popup-Nachrichten sind bei inländischen Internetd...
Der Parameter innodb_autoinc_lock_mode steuert da...
Inhaltsverzeichnis Einführung 1. Was ist one-clic...
Unter Linux gibt es zwei Arten von Dateiverbindun...
Inhaltsverzeichnis Überblick Code-Implementierung...