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

So stellen Sie ein Linux-System automatisch mit PXE bereit

Inhaltsverzeichnis Hintergrund DHCP konfigurieren...

Detaillierte Erklärung des MySQL-Ausführungsplans

Die EXPLAIN-Anweisung liefert Informationen darüb...

MySQL-Datenbank-Indexreihenfolge durch Sortierung – detaillierte Erklärung

Inhaltsverzeichnis Die Ursache des Vorfalls Sorti...

Redo-Dateiwartungsmethode der InnoDB-Engine

Wenn Sie die Größe und Anzahl der InnoDB-Redo-Log...

Grafisches Tutorial zur Deinstallation und Installation von MySQL unter Linux

Dies ist mein erster Blog. Ich bin seit zwei Jahr...

Zusammenfassung zur Verwendung von MySQL-Isolationsspalten und Präfixindizes

Inhaltsverzeichnis Datenspalten isolieren Präfixi...

Mehrere Möglichkeiten, Python-Programme im Linux-Hintergrund auszuführen

1. Die erste Methode besteht darin, den Befehl un...

Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort vergessen?

Was tun, wenn Sie Ihr Linux/Mac MySQL-Passwort ve...

So ändern Sie MySQL, um Remoteverbindungen zuzulassen

In Bezug auf die MySQL-Remoteverbindung stoßen wi...

Fassen Sie die häufigsten Anwendungsprobleme von XHTML-Code zusammen

<br />Ich habe festgestellt, dass viele Leut...