SQL-Implementierung von LeetCode (197. Steigende Temperatur)

SQL-Implementierung von LeetCode (197. Steigende Temperatur)

[LeetCode] 197.Steigende Temperatur

Schreiben 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.

+---------+------------+------------------+
| ID(INT) | Datum(DATE) | Temperatur(INT) |
+---------+------------+------------------+
| 1 | 01.01.2015 | 10 |
| 2 | 02.01.2015 | 25 |
| 3 | 03.01.2015 | 20 |
| 4 | 04.01.2015 | 30 |
+---------+------------+------------------+

Geben Sie beispielsweise die folgenden IDs für die obige Wettertabelle zurück:

+----+
| Ich würde |
+----+
| 2 |
| 4 |
+----+

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:
  • SQL-Implementierung von LeetCode (196. Doppelte Postfächer löschen)
  • SQL-Implementierung LeetCode (185. Top drei der höchsten Gehälter in der Abteilung)
  • SQL-Implementierung von LeetCode (184. Das höchste Gehalt der Abteilung)
  • SQL-Implementierung von LeetCode (183. Kunden, die noch nie eine Bestellung aufgegeben haben)
  • SQL-Implementierung von LeetCode (182. Doppelte Postfächer)
  • SQL-Implementierung von LeetCode (181. Angestellte verdienen mehr als Manager)
  • SQL implementiert LeetCode (180. Fortlaufende Zahlen)
  • C++-Implementierung von LeetCode (179. Maximale Anzahl an Kombinationen)

<<:  Legen Sie den Standardtext des Suchfelds fest. Der Standardtext verschwindet, wenn mit der Maus geklickt wird.

>>:  Detaillierte Erläuterung von CSS3 zum Erzielen eines reaktionsschnellen Akkordeoneffekts

Artikel empfehlen

Frage zur Webseitenerstellung: Bilddateipfad

Dieser Artikel stammt ursprünglich von 123WORDPRE...

Detaillierte Einführung in CSS-Schrift-, Text- und Listeneigenschaften

1. Schrifteigenschaften Farbe, gibt die Farbe des...

So implementieren Sie eine steuerbare gepunktete Linie mit CSS

Vorwort Die Verwendung von CSS zum Generieren gep...

Lernen Sie schnell die MySQL-Grundlagen

Inhaltsverzeichnis SQL verstehen SELECT verstehen...

TortoiseSvn Little Turtle Installation Neuestes ausführliches Grafik-Tutorial

Bei der Installation von tortoiseGit gab es immer...

Hyperlink-Tag für HTML-Webseiten

Lernprogramm zum Hyperlink-Tag einer HTML-Webseit...

Vue verwendet Plug-Ins, um Bilder proportional zuzuschneiden

In diesem Artikel wird der spezifische Code von V...

Nicht alle Pop-ups sind betrügerisch. Tipps zum Entwerfen von Website-Pop-ups

Popup-Nachrichten sind bei inländischen Internetd...

Über MySQL innodb_autoinc_lock_mode

Der Parameter innodb_autoinc_lock_mode steuert da...

Implementierung der CommonJS-Modularität in Browsern ohne Kompilierung/Server

Inhaltsverzeichnis Einführung 1. Was ist one-clic...

Unterscheidung zwischen Linux-Hardlinks und Softlinks

Unter Linux gibt es zwei Arten von Dateiverbindun...

So implementieren Sie das Strategiemuster in Javascript

Inhaltsverzeichnis Überblick Code-Implementierung...