Dieser Artikel beschreibt das MySQL-Beispiel für eine kumulative Berechnung. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: VorwortWir haben eine Anfrage erhalten und das Produkt wollte die Benutzerwachstumskurve analysieren. Das heißt, eine Auflistung der Gesamtzahl der Personen pro Tag für einen bestimmten Zeitraum. Besser ist es, eine Evaluierung der Wirksamkeit der jüngsten Aktivitäten durchzuführen. Dieses statistische SQL hat trotzdem eine Weile gedauert. MySQL-Statistiken erfordern weiterhin bestimmte Kenntnisse. Bedarfsanalyse
Wenn wir uns die obige Benutzerinfo-Tabelle ansehen, können wir basierend auf der Zeitdimension problemlos die Anzahl der täglich hinzugefügten neuen Benutzer berechnen. Das SQL lautet wie folgt: wähle Registrierungszeit, Anzahl (Benutzer-ID) Tagesmenge von user_info Gruppieren nach Reg_Time Durch das obige SQL können wir leicht die folgende Liste erhalten:
Aber das ist nicht das Ergebnis, das wir wollen. Was wir wollen, ist die Gesamtsumme des letzten Tages plus den heutigen Nettozuwachs und so weiter. Das heißt, wir wollen:
Das ist etwas knifflig, wir müssen einige kumulative Berechnungen durchführen. Ich habe Selbstverknüpfung, Funktionen und andere Vorgänge ausprobiert, konnte aber trotzdem kein korrektes Ergebnis erzielen. An diesem Punkt scheint es perfekt zu sein, wenn Java-Code verwendet würde, um dies zu handhaben. Wir müssen nur den Anfangswert deklarieren und dann eine Schleife ausführen und akkumulieren, um das Ergebnis zu berechnen: öffentliche statische void main(String[] args) { arr = {1, 2, 2, 1}; int[] ints = täglicheMengeArr(0, arr); für (int i : ints) { System.out.println("i = " + i); } } öffentliche statische int[] täglicheQuantityArr(int base, int[] täglicheIncrQuantity) { int[] Ergebnis = neue int[dailyIncrQuantity.length]; //Füllung akkumulieren for (int i = 0; i < dailyIncrQuantity.length; i++) { Basis += tägliche Erhöhungsmenge[i]; Ergebnis[i] = Basis; } Ergebnis zurückgeben; } Der obige Pseudocode kann das Ergebnis berechnen. Versuchen Sie natürlich, diese komplexe Berechnung wenn möglich im Java-Geschäftscode durchzuführen. Die Produktanforderung besteht jedoch darin, dass wir eine SQL-Anweisung bereitstellen können, mit der die gewünschte Antwort direkt in der visuellen Daten-Engine abgerufen werden kann. Der obige Code hat mich inspiriert. wähle (@i:=@i+1) als Zeilennummer, Benutzer-ID aus Benutzerinfo, (select @i:=0) als r Mysql-Benutzervariablen MySQL-Variablen werden in lokale Variablen, Benutzervariablen, Sitzungsvariablen und globale Variablen unterteilt. In der obigen Anweisung verwenden wir Benutzervariablen. Benutzervariablen beziehen sich auf Datenbankverbindungen. In einer Verbindung deklarierte Variablen verschwinden, nachdem sie in einer gespeicherten Prozedur erstellt wurden, bis die Verbindung zur Datenbankinstanz getrennt wird. In dieser Verbindung deklarierte Variablen können nicht in einer anderen Verbindung verwendet werden. Verwenden von Mysql-Benutzervariablen für kumulative BerechnungenNachdem wir uns mit Benutzervariablen befasst haben, wissen wir, wie man kumulative Berechnungen durchführt. Die tägliche kumulative Gesamtzahl der Personen in der Tabelle user_info sollte wie folgt aussehen: wähle eine.reg_time, a.täglich, @i:=@i+a.daily als Tagesmenge von (wählen Sie reg_time, Anzahl(Benutzer-ID) täglich von Benutzergruppe von reg_time ) a , (wähle @i:=0) b Die Abfrageergebnisse erfüllen die logischen Anforderungen und lauten wie folgt.
Aber hier gibt es eine kleine Falle. Im tatsächlichen Geschäft ist ZusammenfassenHeute haben wir ein Problem der kumulativen Berechnung in SQL durch MySQL-Benutzervariablen gelöst. Ich frage mich, ob Sie noch andere gute Ideen haben? Hinterlassen Sie gerne eine Nachricht zur Diskussion. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: Tutorial-Analyse zur Installation und Nutzung des Linux-Leistungsüberwachungstools nmon
Inhaltsverzeichnis 1. Eingebaute Objekte 2. Mathe...
Trigger-Einführung Ein Trigger ist eine spezielle...
In diesem Artikel werden zwei Methoden zur Implem...
Heute zeige ich Ihnen, wie Sie mit JavaScript ein...
Inhaltsverzeichnis Zusammenfassen Manchmal müssen...
Diese eingeführten HTML-Tags entsprechen nicht un...
Für jedes DBMS sind die Indizes der wichtigste Op...
Die Tags <abbr> und <acronym> stellen ...
docker-compose-monitor.yml Version: '2' N...
Inhaltsverzeichnis Was ist natives JavaScript A. ...
1. Quellcode entwerfen Code kopieren Der Code laut...
Bei der Arbeit benötigen wir häufig Remote-Server...
Inhaltsverzeichnis 502 Bad Gateway Fehlerbildung ...
1. Nginx-Statusüberwachung Nginx bietet eine inte...
1. Konfiguration der Serverumgebung: 1. Überprüfe...