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
Da ich auf einen neuen Computer gewechselt bin, m...
Inhaltsverzeichnis Was ist ein Listener in Vue? V...
Die folgenden Schritte werden alle auf meiner vir...
Vorwort Ich glaube, dass die Syntax von MySQL nic...
Vorwort Unter Linux können zwei Arten von Swap-Sp...
Cerebro ist eine Weiterentwicklung des Elasticsea...
Die Lösung für das Problem, dass Ubuntu 18.04 in ...
Gegeben sei ein Div mit folgendem Hintergrundbild...
Was ist Serdel userdel ist ein Low-Level-Tool zum...
Beim Entwickeln mobiler Apps stoßen Sie häufig au...
Versionsupdate, das Passwortfeld im Originalbenut...
Laden Sie das Image herunter (optionaler Schritt,...
Inhaltsverzeichnis Überblick Front-End-Wissenssys...
Das Prinzip besteht darin, zuerst ein Div mit ein...
Schwarmclusterverwaltung Einführung Docker Swarm ...