MySQL implementiert Multi-Table-Assoziationsstatistiken (Unterabfragestatistiken) Beispiel

MySQL implementiert Multi-Table-Assoziationsstatistiken (Unterabfragestatistiken) Beispiel

Dieser Artikel beschreibt anhand eines Beispiels die Implementierung von Multi-Table-Assoziationsstatistiken in MySQL. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

brauchen:

Statistiken über die Prämienhöhe für jedes Buch, Aufladedatenstatistiken zu verschiedenen Zeitpunkten, Verbrauchsstatistiken,

Entwerfen Sie vier Tabellen: Buchtabelle, Bestelltabelle, Belohnungsprotokolltabelle und Konsumprotokolltabelle, und verknüpfen Sie sie über die Buch-ID mit der Buchtabelle.

Frage:

Wenn mehr als zwei Tabellen verknüpft sind, kommt es bei der Statistik zu Datenduplizierungen. Um dies herauszufinden, müssen Sie eine Unterabfrage verwenden. Eine Unterabfrage kann nur ein Feld abfragen. Hier wird die Funktion CONCAT_WS verwendet, um mehrere Felder zu verketten.

erreichen:

Der Abfragecode lautet wie folgt

WÄHLEN
Gebot,
b.Buchname,
Summe( WENN ( o.Erstellungszeit > 0 und o.Erstellungszeit < 9999999999, o.Preis, 0 ) ) heute_Geld_zahlen,
Summe( WENN ( o.Erstellungszeit > 0 und o.Erstellungszeit < 9999999999, 1, 0 ) ) heutige_Zahlzahl,
Summe( WENN ( o.Erstellungszeit > 999 && o.Erstellungszeit < 9999, o.Preis, 0 ) ) gestern_Geld_zahlen,
Summe( WENN ( o.Erstellungszeit > 999 und o.Erstellungszeit < 9999, 1, 0 ) ) gestern_Zahlungsnummer,
Summe(o.Preis) Gesamtbetrag,
Summe( WENN ( o.Erstellungszeit > 9999 und o.Erstellungszeit < 99999, 1, 0 ) ) Gesamtzahlungszahl,
(SELECT SUM(Gesamtpunktzahl) FROM Buchbelohnungslog WHERE Buch-ID = b.id) Gesamtpunktzahl,
(
 WÄHLEN
 CONCAT_WS(
  ',',
  SUMME(WENN (Erstellungszeit > 0 und Erstellungszeit < 998, Punktzahl, 0)),
  SUMME(WENN (Erstellungszeit > 9999 und Erstellungszeit < 99998, Punktzahl, 0)),
  SUMME(WENN (Erstellungszeit > 99999 und Erstellungszeit < 999998, Punktzahl, 0))
 )
 AUS
 book_consume_log
 WO
 Buch-ID = b.id
 ) Punktzahl
 AUS
 book_book b
 LINKS JOIN Buchbestellungen o ON b.id = o.bid
GRUPPELN NACH
 Gebot

Abfrageergebnisse

Der Score besteht aus drei Verbrauchszahlen, getrennt durch Kommas

Leistungsanalyse

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „MySQL-Protokolloperationskenntnisse“, „Zusammenfassung der MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“ und „Zusammenfassung der MySQL-Datenbanksperrenkenntnisse“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • Beispiel für das Abrufen der neuesten Daten mithilfe einer MySQL-Mehrtabellenassoziations-Eins-zu-viele-Abfrage
  • Eine kurze Diskussion über die Implementierung von Multi-Table-unabhängigen Abfragen in MySQL
  • Detaillierte MySQL-Erklärung zur Multi-Table-Assoziationsabfrage

<<:  Lassen Sie uns im Detail darüber sprechen, wie JavaScript den Aufbau des DOM-Baums beeinflusst

>>:  Diagramm des Prozesses zur Implementierung eines Richtungsproxys durch Nginx

Artikel empfehlen

Detaillierte Erklärung der grep- und egrep-Befehle in Linux

Vertreter / egrep Syntax: grep [-cinvABC] 'wo...

Lassen Sie uns ausführlich über die LIMIT-Anweisung in MySQL sprechen

Inhaltsverzeichnis Frage Serverebene und Speicher...

Verwendung und Optimierung der MySQL COUNT-Funktion

Inhaltsverzeichnis Was macht die Funktion COUNT? ...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.12

Notieren Sie die Installations- und Konfiguration...

Detaillierte Beschreibung der HTML-Tabellenrahmensteuerung

Nur den oberen Rand anzeigen <table frame=above...

So implementieren Sie die jQuery-Karussellfunktion

In diesem Artikel wird der Implementierungscode d...

JavaScript zum Implementieren einer zeitlich begrenzten Flash-Sale-Funktion

In diesem Artikel wird der spezifische JavaScript...

Beispielcode zum Konvertieren von Videos mit der ffmpeg-Befehlszeile

Bevor Sie mit dem Haupttext dieses Artikels begin...

JS berechnet die Gewinnwahrscheinlichkeit basierend auf dem Preisgewicht

Inhaltsverzeichnis 1. Beispielszenario 1.1. Legen...

Vue + Element UI realisiert Ankerpositionierung

In diesem Artikelbeispiel wird der spezifische Co...