Analyse des Prinzips und der Verwendung der kontinuierlichen MySQL-Aggregation

Analyse des Prinzips und der Verwendung der kontinuierlichen MySQL-Aggregation

Dieser Artikel veranschaulicht anhand von Beispielen das Prinzip und die Anwendung der kontinuierlichen MySQL-Aggregation. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Kontinuierliche Aggregation ist der Vorgang der Aggregation geordneter Daten in zeitlicher Reihenfolge.

In den folgenden Beispielen wird die Tabelle EmpOrders verwendet, um die Bestellmenge jedes Mitarbeiters jeden Monat zu speichern.

Führen Sie den folgenden Code aus, um die Tabelle EmpOrders zu erstellen und mit Beispieldaten zu füllen.

CREATE TABLE EmpOrders (
empid INT NICHT NULL,
Bestellmonat DATE NICHT NULL,
Menge INT NICHT NULL, Test
Primärschlüssel (empid, Bestellmonat)
);

Fragen Sie die Tabelle „order“ und die Tabelle „orderdetails“ ab und fügen Sie die Bestellungen für jeden Monat in die Tabelle „EmpOrder“ ein. Die SQL-Anweisung lautet wie folgt (der Trick besteht darin, nach Monat zu gruppieren):

INSERT INTO EmpOrders
SELECT a.employeeid,orderdate AS Bestelldatum,SUM(Menge) AS Menge
FROM bestellt eine
INNER JOIN Bestelldetails b
EIN a.Bestell-ID=b.Bestell-ID
GROUP BY employid,DATE_FORMAT(Bestelldatum,'%Y-m');

Nachfolgend sehen Sie die PHP-Datei, die Beispieldaten generiert

<?php
$sql = "INSERT INTO emporders SELECT %s,'%s-%02d-01',%s;".'<br />';
$insert_sql = '';
für($empid=1;$empid<=8;$empid++)
{
  für ($Jahr=2009;$Jahr<=2015;$Jahr++)
  {
    für ($Monat = 1; $Monat <= 12; $Monat++)
    {
      $num = rand(20,800);
      $insert_sql .= sprintf($sql,$empid,$jahr,$monat,$num);
    }
    $insert_sql .= '<br />';
  }
}
echo $insert_sql;

Folgendes ist ein Teil der Daten der Mitarbeiterauftragstabelle EmpOrder

Im Folgenden werden drei Probleme der kontinuierlichen Aggregation auf Grundlage der EmpOrders-Tabelle erläutert: kumulativ, gleitend und seit Jahresbeginn.

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:
  • Nutzungs- und Leistungsoptimierungstechniken für die Aggregatfunktion „count“ in MySQL
  • Detaillierte Erläuterung der häufig verwendeten MySQL-Aggregatfunktionen
  • So fügen Sie bedingte Ausdrücke zu Aggregatfunktionen in MySql hinzu
  • php+mysql Open Source XNA-Aggregationsprogramm zum Download freigegeben
  • Mysql kann keine nicht aggregierten Spalten auswählen
  • Detaillierte Erläuterung von Beispielen für MySQL-Einzeltabellenabfragevorgänge [Syntax, Einschränkungen, Gruppierung, Aggregation, Filterung, Sortierung usw.]
  • Analyse der Verwendung von MySQL-Abfragesortierung und Abfrageaggregationsfunktionen
  • MySQL verwendet Aggregatfunktionen zum Abfragen einer einzelnen Tabelle
  • MySQL-Gruppierungsabfragen und Aggregatfunktionen
  • Optimieren der langsamen Abfrage von MySQL-Aggregatstatistikdaten

<<:  jQuery implementiert das Ausblenden und Anzeigen von HTML-Elementen

>>:  So verwenden Sie Celery und Docker zum Ausführen periodischer Aufgaben in Django

Artikel empfehlen

Vue implementiert die Tabellenpaging-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

MySQL-unabhängiger Index und gemeinsame Indexauswahl

Häufig fehlt das Verständnis für mehrspaltige Ind...

TypeScript-Lernhinweise: Typeingrenzung

Inhaltsverzeichnis Vorwort Typinferenz Einengung ...

jquery+springboot realisiert die Datei-Upload-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

4 Möglichkeiten, sich schnell Linux-Befehle selbst beizubringen

Wenn Sie ein Linux-Meister werden möchten, ist di...

Verwendung von Linux-Netzwerkkonfigurationstools

Dieser Artikel stellt RHEL8-Netzwerkdienste und N...

Detaillierte Erläuterung der dauerhaften Speicherung von Redis unter Docker

In diesem Kapitel beginnen wir mit dem Betrieb vo...

Eine kurze Diskussion über 3 bemerkenswerte neue Features in TypeScript 3.7

Inhaltsverzeichnis Vorwort Optionale Verkettung N...

Eine kurze Erläuterung der Unterschiede zwischen FTP, FTPS und SFTP

Inhaltsverzeichnis Einführung in FTP, FTPS und SF...