EinführungHeute werde ich die Verwendung der Summenfunktion in MySQL erläutern. Diese Funktion ist zu einer häufig verwendeten Funktion beim Betrieb von MySQL-Datenbanken geworden. Diese Funktion zählt die Summe der angegebenen Spalten in Zeilen, die die Bedingungen erfüllen. Ich glaube, jeder sollte sie kennen, also gibt es nichts darüber zu sagen. In diesem Artikel werden hauptsächlich mehrere kleine Fälle verwendet, um ein tiefgreifendes Verständnis dieser Funktion zu erlangen und zu erfahren, wie die Summenfunktion zur Optimierung bei MySQL-Abfragen verwendet wird. SyntaxanalyseSUM([DISTINCT] Ausdruck) [over_clause]
Bei den obigen Sätzen handelt es sich um eine Funktionsbeschreibung aus der offiziellen MySQL-Dokumentation. Hier ist eine Übersetzung der ungefähren Bedeutung.
Funktion Erklärung Bei der Verwendung dieser Funktion sollten wir darüber nachdenken, wie diese Funktion die Summe im Ausdruck zählt. Einige Programmierer denken möglicherweise, dass diese Funktion direkt die Summe aller Zeilen zählt, die die Bedingungen erfüllen. Dieses Verständnis ist zwar nicht falsch, aber es ist nicht ganz präzise ausgedrückt bzw. er versteht die Funktionsweise nicht wirklich.
BeispieldemonstrationAngenommen, es gibt eine Tabelle (Lieferung) mit der folgenden Struktur: +-----------------------------+---------+ | Spaltenname | Typ | +-----------------------------+---------+ | Liefer-ID | int | | Kunden-ID | int | | Bestelldatum | Datum | | Kundenwunschlieferdatum | Datum | | Geldbestellmenge | Dezimalzahl | +-----------------------------+---------+ delivery_id ist der Primärschlüssel der Tabelle. Diese Tabelle enthält Informationen zur Essenslieferung für Kunden, die an einem bestimmten Datum eine Bestellung aufgeben und ein gewünschtes Lieferdatum angeben (dasselbe wie oder nach dem Bestelldatum). Stimmt der voraussichtliche Liefertermin des Kunden mit dem Bestelldatum überein, spricht man von einer „Sofortbestellung“, andernfalls von einer „Planbestellung“. +-------------+----------+------------+--------------+-------------+ | Liefer-ID | Kunden-ID | Bestelldatum | Kundenwunsch-Lieferdatum | Bestellgeld | +-------------+----------+------------+--------------+-------------+ | 1 | 1 | 01.08.2019 | 02.08.2019 | 1,23 | | 2 | 5 | 02.08.2019 | 02.08.2019 | 1.01 | | 3 | 1 | 11.08.2019 | 11.08.2019 | 1,09 | | 4 | 3 | 24.08.2019 | 26.08.2019 | 1,00 | | 5 | 4 | 21.08.2019 | 22.08.2019 | 10,00 | | 6 | 2 | 11.08.2019 | 13.08.2019 | 12.09 | +-------------+----------+------------+--------------+-------------+ Beispiel 1 Berechnen Sie den Gesamtbetrag aller Bestellungen in der Tabelle. Dies ist sehr einfach und entspricht auch unserer üblichen Verwendungsmethode. Füllen Sie einfach eine Spalte mit dem Parameter sum() aus. Gemäß den oben genannten Grammatikregeln sollte es sich um einen Ausdruck handeln. Tatsächlich ist eine Spalte auch ein Ausdruck. Wählen Sie die Summe (Bestellgeld) aus der Lieferung. Beispiel 2 Schreiben Sie eine SQL-Abfrage, um den Prozentsatz der Sofortbestellungen zu ermitteln, und behalten Sie dabei zwei Dezimalstellen bei. Dies kann etwas schwierig sein, da Sie diese Syntax selten verwenden. Wenn Sie sie verwendet haben, werden Sie feststellen, dass sie sehr einfach ist. Zunächst müssen Sie verstehen, dass Sie die Gesamtsumme berechnen müssen, da Sie den Anteil eines bestimmten Typs abfragen. Wir können die gesamte Bestellsumme1 zählen, dann die gesamte Sofortbestellsumme1 zählen, dann die gesamte Sofortbestellsumme1 zählen und dann die gesamte Sofortbestellsumme2 zählen. Dann teile es einfach. Allerdings wird hier explizit eine SQL-Anweisung verlangt. Wie kann man das Problem also lösen? Hier müssen Sie das Funktionsprinzip von sum genau verstehen. Wir können uns vorstellen, dass wir die Daten Zeile für Zeile lesen und sum dann Zeile für Zeile akkumulieren lassen. Können wir die Zusammenfassung von sum2 erhalten? Und was ist mit der Synthese von sum2? Und was ist mit der Synthese von sum2? Was Summe1 betrifft, ist es definitiv einfach zu zählen, da es sich dabei um die Summe der Zeilenanzahl in der Tabelle handelt. Lösung 1: Runde auswählen ( Summe(Fall wenn Bestelldatum = Kundenwunschlieferdatum, dann 1, sonst 0, Ende) / Anzahl(*) * 100, 2 ) als unmittelbarer_Prozentsatz ab Lieferung Lösung 2: Runde auswählen ( Summe(Bestelldatum = Kundenwunschlieferdatum) / Anzahl(*) * 100, 2 ) als unmittelbarer_Prozentsatz ab Lieferung Wenn der Summenausdruck die Bedingung erfüllt, wird hier 1 zurückgegeben. Jedes Mal, wenn eine Datenzeile gelesen wird, die die Bedingung erfüllt, wird die Summe um 1 erhöht. Wenn schließlich alle Daten gelesen wurden, wird auch die Summe erhöht. Daher ergibt sich die Gesamtzahl der Artikel, die die Bedingungen erfüllen. QuelleDer Titel stammt von LeetCode. Quelle: LeetCode Link: leetcode-cn.com/problems/im… Es gibt noch ein weiteres gutes Beispiel, bei dem ich Ihnen empfehle, es mit Vorsicht zu interpretieren. Vertiefen Sie die Anwendungsszenarien dieser Funktion. https://www.jb51.net/article/207813.htm ZusammenfassenDies ist das Ende dieses Artikels über die Verwendung der Summenfunktion in MySQL. Weitere Informationen zur Verwendung der MySQL-Summenfunktion finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Beispielcode zur Implementierung des Aushöhlungseffekts mit CSS
>>: Ein kurzer Vortrag über das Klonen von JavaScript
1. Dynamische Abfrageregeln Die dynamischen Abfra...
Inhaltsverzeichnis 1. Projektkonstruktion 2: Verz...
1 Umsetzungsprinzip Dies geschieht mithilfe der E...
In diesem Artikelbeispiel wird der spezifische Co...
Tutorial zur npm-Installation: 1. Laden Sie das N...
Inhaltsverzeichnis Szenario Aufgabe Idee analysie...
1. Die Rolle des Doctypes, der Unterschied zwisch...
Inhaltsverzeichnis 1. Konzept 2. Umgebungsbeschre...
In diesem Artikelbeispiel wird der spezifische Co...
Stichwörter Allgemein Der Titel darf keine Wörter...
So deklarieren Sie einen Cursor in MySQL: 1. Vari...
Poste zuerst das Effektbild: Damit der Gesamtstil ...
<br />Englische Adresse: http://developer.ya...
Vorwort Workbench ist auf einem Computer installi...
Szenario: Die von uns häufig verwendeten Interakt...