Wie unten dargestellt:
Addieren Sie die Spalten a1 und a2 der Tabelle a, um eine neue Spalte a zu bilden, und multiplizieren Sie die Spalten a1 und a2, um eine neue Spalte b zu bilden. Hinweis: Bei der Division muss eine Typkonvertierung durchgeführt werden, sonst ist das Ergebnis 0.
Dies ist eine Operation zwischen Spalten zweier verschiedener Tabellen. Ergänzendes Wissen: SQL-Anweisung zum Berechnen der Differenz zwischen derselben Attributspalte in verschiedenen Datensätzen Die spezifische Struktur der verwendeten Tabelle ist in der folgenden Abbildung dargestellt Der Primärschlüssel in der Tabelle ist (Kennzeichen+aktuelleUhrzeit) Die umzusetzende Abfrage lautet: Fragen Sie bei einem gegebenen Nummernschild und einem Abfragezeitintervall die Differenz in currentTime der im gegebenen Zeitintervall enthaltenen Datensätze ab, berechnen Sie das Produkt aus AverageSpeed und der Differenz, ermitteln Sie die höchste Geschwindigkeit (HighestSpeed) während dieses Zeitraums und teilen Sie sie entsprechend in verschiedene Typwerte auf. –> (Typwert hat nur zwei Werte 0 und 1) Die Grundidee besteht darin, dass zunächst die Differenz in der aktuellen Zeit desselben Kennzeichens (d. h. desselben Fahrzeugs) unter demselben Typ innerhalb eines bestimmten Zeitintervalls ermittelt werden kann, z. B. die Differenz in der aktuellen Zeit zweier benachbarter Datensätze, die nach aktueller Zeit sortiert sind. Nachdem dies ermittelt wurde, kann der Rest durch Aggregationsfunktionen ermittelt werden. Wir nehmen das Kennzeichen 京A111111 als Beispiel und gestalten den Testfall wie in der folgenden Abbildung dargestellt. Es ist ersichtlich, dass für das Fahrzeug mit dem Kennzeichen 京A111111 6 Datensätze vorhanden sind, davon 2 Datensätze mit Typ 0 und 4 Datensätze mit Typ 1. Wir berechnen zunächst die Zeitdifferenz und die SQL-Anweisung lautet wie folgt: WÄHLEN Sie ein Kennzeichen, a.aktuelleZeit, ein Typ, a.Durchschnittsgeschwindigkeit, a.höchste Geschwindigkeit, aktuelleZeit - (WÄHLEN Sie aktuelleZeit VON carmultispeedinfo WO Kennzeichen = a.Kennzeichen UND Typ = a.Typ UND aktuelleZeit < a.aktuelleZeit ORDER BY aktuelle Zeit DESC LIMIT 1)AS Zeitdifferenz VON carmultispeedinfo ein Über Navicat können Sie die Abfrageergebnisse wie in der folgenden Abbildung anzeigen: Indem Sie überprüfen, ob der Timediff-Wert korrekt ist, können Sie darauf basierend Inhalt hinzufügen. Die vollständige SQL-Anweisung lautet wie folgt: SELECT Sum(aa.averagespeed * aa.timediff) AS Meilendifferenz, Max(aa.höchsteGeschwindigkeit) AS HöchsteGeschwindigkeit, Summe(aa.timediff) AS timediff, aa.Typ VON (Wählen Sie ein Kennzeichen aus, a.aktuelleZeit, ein Typ, a.Durchschnittsgeschwindigkeit, a.höchste Geschwindigkeit, aktuelleZeit - (WÄHLEN Sie aktuelleZeit VON carmultispeedinfo WO Kennzeichen = a.Kennzeichen UND Typ = a.Typ UND aktuelleZeit < a.aktuelleZeit ORDER BY aktuelle Zeit DESC LIMIT 1) AS Zeitdifferenz VON carmultispeedinfo a)aa WO aa.Kennzeichen = "A111111" UND aa.currenttime >= 1521790124670 UND aa.aktuelleZeit <= 1521790125685 GROUP BY aa.Typ Die Ergebnisse sind wie folgt: Nach der Überprüfung erhalten wir das gewünschte Ergebnis. Ersetzen Sie dann einfach das SQL, das der Mybatis-Mapper-Datei entspricht. <Aufzeichnung, Memo> Ich werde in Zukunft weitere Updates veröffentlichen, nachdem ich ein tieferes Verständnis habe. Vielen Dank an alle, ich hoffe, es kann Ihnen als Referenz dienen, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Das könnte Sie auch interessieren:
|
<<: 12 Arten der Komponentenkommunikation in Vue2
>>: Mehrere Möglichkeiten zum Herunterfahren des Hyper-V-Dienstes unter Windows 10
Ereignisschleife in js Da JavaScript ein Single-T...
Vorwort Hallo zusammen, ich bin Liang Xu. Bei der...
MySQL bietet mehrere Möglichkeiten, mehrere SQL-D...
Inhaltsverzeichnis 1 Die allgemeinen Regeln zum E...
Installieren Sie Docker unter CentOS 8 Offizielle...
1. Unterabfrage MySQL 4.1 und höher unterstützen ...
MySQL selbst wurde auf Basis des Dateisystems ent...
Ich benutze den vi-Editor seit mehreren Jahren, h...
Inhaltsverzeichnis (1) Einleitung: (2) Zum Kopier...
Inhaltsverzeichnis 1. Installationsvorbereitung 1...
In diesem Artikel wird der spezifische Code von V...
Beachten! ! ! Wählen Sie * vom Benutzer, wobei di...
1. CSS-Elemente verbergen <br />In CSS gibt ...
Wenn ein Backup vorhanden ist, ist es ganz einfac...
Test: Chrome v80.0.3987.122 ist normal Es gibt zw...