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

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

Erstellen einer Tabelle

 Tabelle erstellen Bestellung (ID varchar (10), Datum, Uhrzeit, Bestellungen 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 Reihenfolgewerte einfügen('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)

Ideen

Gruppieren Sie die Tabelle nach ID und Rang nach Zeit, subtrahieren Sie den Rang rnk von der Zeit. Wenn die Zeit kontinuierlich ist, ist das Subtraktionsergebnis gleich:

 wähle *, Datum-Rang von (wähle *, Zeilennummer() über (Partition nach ID, Sortierung nach Datum) Rang von Reihenfolge) a;

Dann gruppieren nach ID, RNK und Anzahl

 wähle id,rnk,count(*) ok von 
(Wählen Sie *, Datum-Rangrnk aus (Wählen Sie *, Zeilennummer () über (Partition nach ID, Sortierung nach Datum) Rang aus Reihenfolge) a) b Gruppieren nach ID, RNK;

Man erhält folgende Tabelle:

Filtern Sie abschließend die Anzahl der Elemente, die ok sind >= 7.

Sie können auch direkt filtern:

 wähle id,rnk aus 
(Wählen Sie *, Datum-Rangrnk aus (Wählen Sie *, Zeilennummer () über (Partition nach ID, Sortierung nach Datum) Rang aus Reihenfolge) a) b Gruppieren nach ID, rnk mit Anzahl (*)>=7;

Oben sehen Sie die SQL-Abfrage, die der Editor Ihnen für Benutzer vorgestellt hat, die an mindestens sieben aufeinanderfolgenden Tagen Bestellungen aufgegeben haben. Ich hoffe, sie wird Ihnen hilfreich sein. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • SQL-Abfrage für Benutzer, die sich ständig anmelden
  • SQL-Abfragemethode zur Implementierung von Benutzern, die sich seit mehr als 7 Tagen angemeldet haben
  • SQL-Abfrageanweisung zum Ermitteln der Anzahl aufeinanderfolgender Anmeldetage eines Benutzers
  • So fragen Sie den Code fortlaufender Datumsdatensätze in SQL Server ab

<<:  Was sind die neuen CSS-Pseudoklassenfunktionen :where und :is?

>>:  Vue elementUI implementiert Baumstrukturtabelle und Lazy Loading

Artikel empfehlen

CSS-Vererbungsmethode

Gegeben sei ein Div mit folgendem Hintergrundbild...

So stellen Sie einen Redis 6.x-Cluster über Docker bereit

Systemumgebung: Redis-Version: 6.0.8 Docker-Versi...

Hallo – Erfahrungsaustausch zum Entwurf von Dialogfeldern

„Was ist los?“ Sofern Sie nicht an bestimmte Arten...

CocosCreator klassisches Einstiegsprojekt flappybird

Inhaltsverzeichnis Entwicklungsumgebung Game-Engi...

Zusammenfassung der Möglichkeiten zur Implementierung von Single Sign-On in Vue

Das Projekt wurde vor Kurzem ausgesetzt und die U...

So implementieren Sie mehrere Parameter in el-dropdown in ElementUI

Aufgrund der zunehmenden Anzahl von Schaltflächen...

Wie implementiert MySQL ACID-Transaktionen?

Vorwort Kürzlich wurde ich in einem Interview gef...