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 kompilieren und installieren Sie OpenCV unter Ubuntu

Einfache Installation von opencv2: conda installi...

Probleme beim Erstellen von Platzhaltern für HTML-Auswahlfelder

Ich verwende einen Platzhalter in einer Texteinga...

Beispiel für einen WeChat-Applet-Rechner

Beispiel für einen WeChat-Applet-Rechner. Zu Ihre...

Tutorial zur Installation von Android Studio unter Ubuntu 19 und darunter

Aus Erfahrung weiß man, dass es eine gute Angewoh...

JavaScript – Verwenden von Slots in Vue: Slot

Inhaltsverzeichnis Verwenden von Slots in Vue: Sl...

So installieren Sie eine virtuelle Maschine mit Windows-Diensten auf dem Mac

1. Laden Sie die virtuelle Maschine herunter Offi...

Beispiel für ein WeChat-Applet zum Erzielen des rotierenden Laterneneffekts

Vorwort In der täglichen Entwicklung stoßen wir h...

Kennen Sie die seltsamen Dinge in Javascript?

Unsere erfahrenen Vorgänger haben zahllose Codes ...

Zusammenfassung häufiger Probleme und Lösungen in Vue (empfohlen)

Es gibt einige Probleme, die nicht auf Vue beschr...

So installieren Sie Grafana und fügen Influxdb-Überwachung unter Linux hinzu

Installieren Sie Grafana. Die offizielle Website ...

Wissen Sie, wie Sie mit Vue-Cropper Bilder in Vue zuschneiden?

Inhaltsverzeichnis 1. Installation: 2. Verwendung...

Vue implementiert die Anmeldung mit grafischem Bestätigungscode

In diesem Artikelbeispiel wird der spezifische Co...

So erstellen Sie eine PHP+Nginx+Swoole+MySQL+Redis-Umgebung mit Docker

Betriebssystem: Alibaba Cloud ESC-Instanz centos7...