SQL-Abfrage für Benutzer, die sich an mindestens n aufeinanderfolgenden Tagen angemeldet haben

SQL-Abfrage für Benutzer, die sich an mindestens n aufeinanderfolgenden Tagen angemeldet haben

Nehmen Sie als Beispiel drei aufeinanderfolgende Tage und verwenden Sie das Tool: MySQL.

1. SQL-Tabelle erstellen:

 Tabelle erstellen, falls nicht vorhanden: order(id varchar(10),date datetime,orders varchar(10));
in Reihenfolge einfügen Werte('1', '2019/1/1',10);
in Reihenfolge einfügen Werte('1', '2019/1/2',109);
in Reihenfolge einfügen Werte('1', '2019/1/3',150);
in Reihenfolge einfügen Werte('1', '2019/1/4',99);
in Reihenfolge einfügen Werte('1', '2019/1/5',145);
in Reihenfolge einfügen Werte('1', '2019/1/6',1455);
in Reihenfolge einfügen Werte('1', '2019/1/7',199);
in Reihenfolge einfügen Werte('1', '2019/1/8',188);
in Reihenfolge einfügen Werte('4', '2019/1/1',10);
in Reihenfolge einfügen Werte('2', '2019/1/2',109);
in Reihenfolge einfügen Werte('3', '2019/1/3',150);
in Reihenfolge einfügen Werte('4', '2019/1/4',99);
in Reihenfolge einfügen Werte('5', '2019/1/5',145);
in Reihenfolge einfügen Werte('6', '2019/1/6',1455);
in Reihenfolge einfügen Werte('7', '2019/1/7',199);
in Reihenfolge einfügen Werte('8', '2019/1/8',188);
in Reihenfolge einfügen Werte('9', '2019/1/1',10);
in Reihenfolge einfügen Werte('9', '2019/1/2',109);
in Reihenfolge einfügen Werte('9', '2019/1/3',150);
in Reihenfolge einfügen Werte('9', '2019/1/4',99);
in Reihenfolge einfügen Werte('9', '2019/1/6',145);
in Reihenfolge einfügen Werte('9', '2019/1/9',1455);
in Reihenfolge einfügen Werte('9', '2019/1/10',199);
in Reihenfolge einfügen Werte('9', '2019/1/13',188);

Sehen Sie sich das Datenblatt an:

2. Verwenden Sie die Sortierfunktion row_number() over(), um die Rangfolge jeder ID zu berechnen. Das SQL lautet wie folgt:

 Wählen Sie *, Zeilennummer () über (Partition nach ID, Sortierung nach Datum) 'Rang'
ab Bestellung
wobei „Bestellungen“ nicht NULL ist;

Datenblatt anzeigen:

3. Subtrahieren Sie das Rangfeld vom Datumsfeld. Das SQL lautet wie folgt:

 wähle *,DATE_SUB(ein.Datum,Intervall,ein.Rang,Tag) 'date_sub'
aus(
Wählen Sie *, Zeilennummer () über (Partition nach ID, Sortierung nach Datum) 'Rang'
ab Bestellung
wobei „Bestellungen“ nicht NULL ist
) A;

Sehen Sie sich die Daten an:

4. Gruppieren Sie nach ID und Datum und berechnen Sie die Anzahl der gruppierten Elemente (Anzahl) sowie die frühesten und spätesten Anmeldezeiten. Das SQL lautet wie folgt:

 wähle b.id,min(Datum) 'Startzeit',max(Datum) 'Endzeit',Anzahl(*) 'Datumsanzahl'
aus(
wähle *,DATE_SUB(ein.Datum,Intervall,ein.Rang,Tag) 'date_sub'
aus(
Wählen Sie *, Zeilennummer () über (Partition nach ID, Sortierung nach Datum) 'Rang'
ab Bestellung
wobei „Bestellungen“ nicht NULL ist
)
) B
Gruppieren nach b.date_sub,id
mit count(*) >= 3
;

Sehen Sie sich die Daten an:

Quellen:

SQL-Abfrage für Benutzer, die an mindestens sieben aufeinanderfolgenden Tagen Bestellungen aufgegeben haben

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So fragen Sie die maximale Anzahl aufeinanderfolgender Anmeldetage zwischen zwei Daten in MySQL ab
  • MySQL berechnet die Anzahl der Tage, Monate und Jahre zwischen zwei Daten
  • mysql generiert fortlaufende Daten und Variablenzuweisungen
  • So berechnen Sie die Anzahl aufeinanderfolgender Anmeldetage in MySQL

<<:  Zusammenfassung der für die Front-End-Entwicklung erforderlichen allgemeinen Toolfunktionen

>>:  Neonlichteffekte mit reinem CSS3 umgesetzt

Artikel empfehlen

So zeigen Sie die Erstellungszeit von Dateien in Linux an

1. Einleitung Ob die Erstellungszeit einer Datei ...

MySQL versteht kurz, wie "order by" funktioniert

Zum Sortieren ist „order by“ ein Schlüsselwort, d...

Probleme beim Erstellen von Platzhaltern für HTML-Auswahlfelder

Ich verwende einen Platzhalter in einer Texteinga...

JavaScript realisiert Lupen-Spezialeffekte

Der zu erzielende Effekt: Wenn die Maus auf das k...

Lizenzschlüssel für VMware Workstation Pro 16 mit Nutzungs-Tutorial

VMware Workstation ist eine leistungsstarke virtu...

Verwendung von Vue3-Seiten, Menüs und Routen

Inhaltsverzeichnis 1. Klicken Sie auf das Menü, u...

JavaScript zum Erzielen eines Bodeneffekts

In diesem Artikel wird der spezifische JavaScript...

MySQL Order By-Codebeispiel für Sortierregeln für mehrere Felder

Sag es im Voraus Aus einer Laune heraus möchte ic...

Tipps zum Erstellen von Webseiten für Mobiltelefone

Angesichts der Tatsache, dass mittlerweile viele M...

Zeitzonenprobleme mit im Docker-Container bereitgestelltem Django

Inhaltsverzeichnis Zeitzonenkonfiguration in Djan...