Beispiel für die Implementierung von Gruppierung und Deduplizierung in einer MySQL-Tabellenverknüpfungsabfrage

Beispiel für die Implementierung von Gruppierung und Deduplizierung in einer MySQL-Tabellenverknüpfungsabfrage

Geschäftslogik

Veröffentlichen Sie den Link zur Aktivitätsseite des Miniprogramms über verschiedene Kanäle, z. B. durch Senden von Links per Textnachricht (Kanäle werden als SMS1, SMS2, SMS3 aufgezeichnet) oder durch Posten des QR-Codes des WeChat-Miniprogramms auf einem Poster (Kanäle werden als QR-Code1, QR-Code2, QR-Code3 aufgezeichnet). Offline-Mitglieder können auch durch Scannen des QR-Codes auf die angegebene Aktivitätsseite des Miniprogramms zugreifen oder das Miniprogramm über den von anderen Mitgliedern freigegebenen Miniprogramm-Link aufrufen (Kanal wird als „Teilen“ aufgezeichnet). Diese unterschiedlichen Eingabemethoden werden in diesem Artikel zusammenfassend als unterschiedliche Kanäle bezeichnet, wobei es sich um das erwähnte Kanalfeld handelt. Wenn Sie die Aktivitätsseite über verschiedene Kanäle aufrufen, wird ein Seitenbesuchsdatensatz generiert. Es wird in der Page_View-Tabelle gezählt.

Nachdem Mitglieder die angegebene Aktivitätsseite des Miniprogramms aufgerufen und eine Reihe von Vorgängen auf der Seite ausgelöst haben, erhalten sie entsprechendes Feedback, z. B. das Sammeln von Punkten oder Coupons usw. Dieser Schritt wird als Teilnahme bezeichnet. Diese Daten werden in der Tabelle „activity_record“ aufgezeichnet.

Nun verlangte die Dame von der Betriebsabteilung einen Datenreport. Zu welcher Zeit und über welchen Kanal ist jedes an der Veranstaltung teilnehmende Mitglied zur Veranstaltung gelangt?

Datentabellenstruktur

Tabellenname Mitglieds-ID Teilnahmezeit
Aktivitätsdatensatz Mitgliedsnummer Zeit der Aktivitätsteilnahme

Tabellenname Mitglieds-ID Kanal Anzeigezeit
Seitenansicht Mitgliedsnummer Kanal Uhrzeit des Seitenbesuchs

Abfragelogik

Denn jedes Mitglied kann nur an einer Aktivität teilnehmen, das heißt, es kann während der Aktivität nur einmal Punkte sammeln, einmal einen Coupon erhalten usw., was bedeutet, dass jedes Mitglied höchstens einen activity_record-Datensatz generiert.

Die Aufzeichnungsmethode der Page_View-Tabelle ist jedoch unterschiedlich. Ein Mitglied hat möglicherweise einen Link per SMS erhalten, einen Event-QR-Code gescannt oder den Event-Link von einem Freund geteilt bekommen. Dadurch werden mehrere Seitenzugriffsdatensätze für dieses Mitglied generiert, d. h. mehrere Daten in der Seitenansicht.

Bedenken Sie, dass Mitglieder zunächst über einen bestimmten Kanal auf die Veranstaltungsseite zugreifen müssen, bevor sie an der Veranstaltung teilnehmen können. Das heißt, wenn mehrere Seitenaufrufdaten vorhanden sind, die in umgekehrter Reihenfolge nach Anzeigezeit angeordnet sind, wird es immer eine Anzeigezeit geben, die kleiner ist als die Teilnahmezeit des Aktivitätsdatensatzes und ihr am nächsten kommt, und die Anzeigezeit des nächsten Seitenaufrufs wird größer sein als die Teilnahmezeit des Aktivitätsdatensatzes.

SQL-Skripte

Wählen Sie c.member_id,c.view_time,.channel aus (
WÄHLEN
 Mitglieds-ID,
 SUBSTRING_INDEX( GROUP_CONCAT( Ansichtszeit ORDER BY Ansichtszeit DESC ), ',', 1 ) AS Ansichtszeit,
 SUBSTRING_INDEX( GROUP_CONCAT( Kanal ORDER BY Kanal DESC ), ',', 1 ) AS Kanal
AUS
 Seitenansicht a LEFT JOIN Aktivitätsdatensatz b
        auf a.member_id = b.member_id
        wobei a.Anzeigezeit < b.Teilnahmezeit
GRUPPELN NACH
 Mitglieds-ID) c;

Skriptbeschreibung

  • GROUP_CONCAT: Durch die Verwendung von distinct können doppelte Werte ausgeschlossen werden; group_concat( [distinct] zu verbindendes Feld [order by sort field asc/desc] [separator 'separator'] )
  • SUBSTRING_INDEX: Funktion zum Abfangen von Zeichenfolgen. Teilzeichenfolgenindex (Zeichenfolge, Trennzeichen, Anzahl). str: zu verarbeitender String; delim: Trennzeichen; count: Anzahl

Damit ist dieser Artikel über das Implementierungsbeispiel der MySQL-Tabellen-verbundenen Abfragegruppierung und Deduplizierung abgeschlossen. Weitere Informationen zur MySQL-Tabellen-verbundenen Abfragegruppierung und Deduplizierung finden Sie in den vorherigen Artikeln von 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:
  • Detaillierte Erklärung, ob die MySQL-Datenbank Fremdschlüsseleinschränkungen verwenden soll
  • Warum ist der Speicherplatz nach dem Löschen von Tabellendaten in MySQL immer noch belegt?
  • Detaillierte Analyse der MySQL-Indexdatenstruktur
  • Grundlegende MySQL-Grundlagen: Gruppierungsfunktion, Aggregatfunktion, Gruppierungsabfrage – ausführliche Erklärung
  • MySQL-Abfrageanweisung nach Zeit gruppiert
  • Detaillierte Erklärung der Group-By-Anweisung in der MySQL-Datenbankgruppenabfrage
  • Methode zur Optimierung von MySQL-Gruppenabfragen
  • MySQL-Gruppierungsmethode für die Gruppierungssequenz einzelner Wörter und die Gruppierung mehrerer Felder
  • MySQL-Datenaggregation und -gruppierung

<<:  Benutzerzentriertes Design

>>:  Detaillierte Erläuterung gängiger Methoden von JavaScript Array

Artikel empfehlen

Tipps zum Festlegen von HTML-Tabellenrändern

Für viele HTML-Neulinge ist die Tabelle <table...

JS generiert eindeutige ID-Methoden: UUID und NanoID

Inhaltsverzeichnis 1. Warum NanoID UUID ersetzt 2...

Detaillierte Erklärung der Zeichensätze und Validierungsregeln in MySQL

1Mehrere gängige Zeichensätze Zu den gängigsten Z...

JavaScript verwendet Promise zur Verarbeitung mehrerer wiederholter Anfragen

1. Warum diesen Artikel schreiben? Sie haben sich...

JavaScript realisiert Lupen-Spezialeffekte

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

Eine kleine Sammlung von HTML-Meta-Tags

<Head>……</head> gibt den Dateikopf vo...

Die Umsetzung von Youdas neuem Petite-Vue

Inhaltsverzeichnis Vorwort Einführung Live Einfac...

Implementierung eines einfachen Rechners auf Basis von JavaScript

In diesem Artikel wird der spezifische JavaScript...

Lösen Sie das MySQL 5.7.9 Version sql_mode=only_full_group_by Problem

MySQL 5.7.9 Version sql_mode=only_full_group_by P...

Ein Artikel zeigt Ihnen, wie Sie den Watch-Listener von Vue verwenden

Inhaltsverzeichnis Hörer beobachten Format Richte...