Mysql Rollup

Mysql Rollup
Die MySQL -Datenbank enthält viele zugehörige Tabellen zum Speichern von Daten. Manchmal erfordert es die Datenzusammenfassung, indem ein oder mehrere Tabellen verwendet werden. Die MySQL-Rollup-Funktion wird verwendet, um diese Art von Daten zu generieren, die möglicherweise die Gesamt- oder Untertastung eines oder mehrerer Felder der Tabelle enthalten. Die Subtotale der Daten kann einfach berechnet werden, indem eine einfache Rollup -Anweisung ohne Gewerkschaft in der Abfrage verwendet wird. Zusätzlich können Gesamt- und subtotale Zeilen zum Inhalt der Tabelle mit dieser Anweisung hinzugefügt werden. In diesem Tutorial wurden verschiedene Verwendungen von Rollup in der Abfrage beschrieben.

Syntax:

Mit dem Rollup wird eine Gruppe von Spalten erstellt. Daher werden jede Gesamtfunktion von MySQL und Group By Klausel in der Auswahlabfrage verwendet, in der das Rollup verwendet wird. Die Syntax des Rollups ist unten gezeigt. Die Feldnamen der Tabelle, die nach der Auswahlklausel verwendet wird, wird mit der Gruppe per Klausel zur Gruppierung verwendet.

Wählen Sie Feld1, Feld2 AggregateFunktion (Feld3)
Vom TableName
Gruppe von Field1, eingereicht2 mit Rollup;

Verwendungen der Rollup -Anweisung in Auswahlabfrage:

In diesem Tutorial wurden verschiedene Verwendungen der Rollup -Anweisung mit der Gruppe nach Klausel in der Auswahlabfrage gezeigt.

Voraussetzungen:

Sie müssen eine Datenbanktabelle mit Daten in einer MySQL -Datenbank erstellen, um die Verwendung der Rollup -Anweisung mit der Gruppe nach Klausel in MySQL zu überprüfen. Öffnen Sie das Terminal und verbinden Sie sich mit dem MySQL -Server, indem Sie den folgenden Befehl ausführen.

$ sudo mysql -u root

Führen Sie den folgenden Befehl aus, um eine Datenbank mit dem Namen zu erstellen test_db.

Datenbank erstellen test_db;

Führen Sie den folgenden Befehl aus, um die Datenbank auszuwählen.

Verwenden Sie test_db;

Führen Sie die folgende Anfrage aus, um eine Tabelle mit dem Namen zu erstellen sales_persons mit vier Feldern.

Erstellen von Tabellen Sales_Persons (
ID int auto_increment Primärschlüssel,
Nennen Sie Varchar (30) nicht null,
E -Mail Varchar (50),
contact_no varchar (30));

Führen Sie die folgende Anfrage aus, um drei Datensätze in die Einfügung einzulegen Verkäufer Tisch.

In 'Sales_Persons' ('ID', 'Name', 'E -Mail', 'contact_no') einfügen (null, 'Kamal Hasan', '[email protected] ',' 0191275634 '),
(Null, 'Nila Hossain', '[email protected] ',' 01855342357 '),
(Null, 'Abir Hossain', '[email protected] ',' 01634235698 ');

Führen Sie die folgende Anfrage aus, um eine Tabelle mit dem Namen zu erstellen Verkauf mit vier Feldern, die einen fremden Schlüssel enthält, der eine Eins-zu-Viele-Beziehung zum Verhältnis zur sales_persons Tisch zum Verkauf Tisch.

Tischverkäufe erstellen (
Id int nicht null primärer Schlüssel,
sales_date Datum nicht null, Betrag int int,
sp_id int,
Einschränkung fk_sp Fremdschlüssel (sp_id)
Referenzen Sales_Persons (ID)
Bei Löschen von Kaskade auf Update Cascade);

Führen Sie die folgende Anfrage aus, um vier Datensätze in die Einfügung einzulegen Verkauf Tisch.

Einfügen in "Verkauf" ("ID", "Sales_date", "Betrag", "sp_id") Werte
(90, '2021-11-09', 800000, 1),
(34, '2020-12-15', 563400, 3),
(67, '2021-12-23', 900000, 1),
(56, '2020-12-31', 6700000, 1);

Beispiel 1: Erstellen Sie einen Zusammenfassungsbericht, ohne die Rollup-Anweisung zu verwenden

Die folgende ausgewählte Abfrage berechnet den Zusammenfassungsbericht über die Gesamtverkäufe jedes Verkäufers und den Gesamtverkaufsbetrag aller Verkäufe mit zwei ausgewählten Abfragen, indem sie Gewerkschaft verwenden. Eine ausgewählte Abfrage holt den Namen des Verkäufers und den Gesamtumsatz dieses Verkäufers ab. Eine andere Abfrage berechnet den Umsatz aller Verkäufer. Führen Sie die folgende Abfrage aus der MySQL -Eingabeaufforderung aus.

Wählen Sie den Namen, die Summe (Betrag) als Gesamtzahl aus
Aus Verkäufen, Sales_Persons
Wo Verkäufe.sp_id = sales_persons.Ausweis
Gruppe von sp_id
Gewerkschaft alle
Wählen Sie NULL, Summe (Verkäufe.Betrag) als Gesamt
Aus dem Verkauf;

Ausgang:

Nach der Ausführung der obigen Abfrage wird die folgende Ausgabe angezeigt. Es gibt einen Rekord für den Verkäufer namens 'Abir Hossain' mit dem ID -Wert 3 in der Verkauf Tabelle und die Menge beträgt 563400. Es gibt drei Rekorde für den Verkäufer mit dem Namen "Kamal Hasan" mit dem ID -Wert, 1 in der Verkaufstabelle, und der Gesamtverkaufsbetrag beträgt 8400000. Die Summe aller Verkaufsbetrag beträgt 563400+8400000 = 8963400.

Ausgang:


Nach der Ausführung der obigen Abfrage wird die folgende Ausgabe angezeigt. Das Feld Name zeigt den Nullwert für die Zeile, die den Gesamtbetrag enthält.

Beispiel-2: Verwendung von Rollup mit einer Feld und einer Summe () -Funktion

Der im vorherige Beispiel erzeugte Ausgang kann einfach mit der in diesem Beispiel gezeigten Rollup -Anweisung generiert werden. Die Auswahlabfrage, die verwendet wurde, um die Gesamtverkäufe aller Verkäufer im vorherigen Beispiel zu zählen, ist in der folgenden Abfrage aufgrund der Verwendung der Rollup -Anweisung nicht erforderlich. Das Name des Namens der Verkauf Die Tabelle wurde mit der Aggregatfunktion in der Abfrage auswählen verwendet. Die Gruppe nach Klausel enthält das Feld Namen mit der Rollup -Anweisung.

Wählen Sie den Namen, die Summe (Betrag) als Gesamtzahl aus
Aus Verkäufen, Sales_Persons
Wo Verkäufe.sp_id = sales_persons.Ausweis
Gruppe nach Namen mit Rollup;

Ausgang:

Nach der Ausführung der obigen Abfrage wird die folgende Ausgabe angezeigt. Wie im vorherigen Beispiel zeigt das Feld Namen den Nullwert für die Zeile, die den Gesamtbetrag enthält.

Beispiel-3: Verwendung von Rollup mit Year () Funktion neben der Funktion SUM ()

Die Verwendung einer integrierten MySQL-Funktion mit der Aggregatfunktion zur Verwendung der Rollup-Anweisung wurde in diesem Beispiel gezeigt. Die folgende ausgewählte Abfrage zeigt den zusammenfassenden Bericht des Verkaufsbetrags basierend auf dem Verkaufsjahr. Die Funktion des Jahres () wurde in der Abfrage verwendet, um den Jahreswert aus dem Verkaufsdatum herauszufinden. Nach den eingefügten Daten der Verkaufstabelle gibt es zwei Einträge für 2020 und zwei Einträge für das Jahr 2021.

Wählen Sie Jahr (Sales_date), Summe (Betrag) als Gesamtsumme aus
Aus dem Verkauf
Gruppe für Jahr (Sales_date) mit Rollup;

Ausgang:

Nach der Ausführung der obigen Abfrage wird die folgende Ausgabe angezeigt. Der Gesamtverkaufsbetrag für das Jahr 2020 beträgt 563400+6700000 oder 7263400. Der Gesamtverkaufsbetrag für das Jahr 2021 beträgt 800000+900000 oder 1700000. Die Gesamtzahl von 7263400+1700000 beträgt 8963400.

Abschluss:

Viele komplexe Abfragen können einfach mithilfe der Rollup -Anweisung implementiert werden. Die Verwendung dieser Anweisung wurde durch die Verwendung mehrerer Tabellen in diesem Tutorial für die Unterstützung der neuen MySQL -Benutzer gezeigt.