Heim >Datenbank >MySQL-Tutorial >Was bedeutet Gruppe?

Was bedeutet Gruppe?

青灯夜游
青灯夜游Original
2023-03-09 18:37:1131445Durchsuche

Gruppe bedeutet „Gruppenabfrage“, was als „Gruppierung (Gruppe) nach (nach) bestimmten Regeln“ verstanden werden kann. Seine Funktion besteht darin, einen Datensatz durch bestimmte Regeln in mehrere kleine Bereiche zu unterteilen und dann auf mehrere kleine Bereiche abzuzielen Bereiche werden für die Datenverarbeitung genutzt. In MySQL ist GROUP BY eine optionale Klausel der SELECT-Anweisung, die zum Gruppieren von Abfrageergebnissen basierend auf einem oder mehreren Feldern verwendet wird. Sie reduziert die Anzahl der Zeilen im Ergebnissatz.

Was bedeutet Gruppe?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

group bedeutet „Gruppenabfrage“.

Die Group By-Anweisung bedeutet auf Englisch wörtlich „Gruppieren nach (nach) bestimmten Regeln“. Seine Funktion besteht darin, einen Datensatz durch bestimmte Regeln in mehrere kleine Bereiche zu unterteilen und dann die Datenverarbeitung in mehreren kleinen Bereichen durchzuführen.

MySQL verwendet die Gruppenabfrage GROUP BY.

In MySQL kann das Schlüsselwort GROUP BY Abfrageergebnisse nach einem oder mehreren Feldern gruppieren.

Die GROUP BY-Klausel gruppiert eine Reihe von Zeilen nach dem Wert einer Spalte oder eines Ausdrucks in eine kleine Gruppe von Zusammenfassungszeilendatensätzen. Die GROUP BY-Klausel gibt eine Zeile für jede Gruppe zurück. Mit anderen Worten: Es reduziert die Anzahl der Zeilen im Ergebnissatz.

GROUP BY-Klausel wird häufig mit Aggregatfunktionen wie SUM, AVG, MAX, MIN und COUNT verwendet. Aggregatfunktionen werden in der SELECT-Klausel verwendet, um Informationen zu jeder Gruppierung zu berechnen.

Die GROUP BY-Klausel ist eine optionale Klausel der SELECT-Anweisung. Das Folgende ist die Syntax der GROUP BY-Klausel:

SELECT 
    c1, c2,..., cn, aggregate_function(ci)
FROM
    table
WHERE
    where_conditions
GROUP BY c1 , c2,...,cn;

Die GROUP BY-Klausel muss nach den FROM- und WHERE-Klauseln stehen. Nach dem Schlüsselwort GROUP BY folgt eine durch Kommas getrennte Liste von Spalten oder Ausdrücken, die als Bedingungen zum Gruppieren von Zeilen verwendet werden sollen.

MySQL-GROUP-BY-Beispiel

1. Einfaches MySQL-GROUP-BY-Beispiel

Sehen wir uns die Auftragstabelle in der Beispieldatenbank (yiibaidb) an: Sie möchten die Bestellstatuswerte in Untergruppen gruppieren, Sie müssen die GROUP BY-Klausel verwenden und die Statusspalte angeben, um die Gruppierung durchzuführen. Die folgende Abfrage:

mysql> desc orders;

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse -Was bedeutet Gruppe?

Wie Sie sehen, ist der von der GROUP BY-Klausel zurückgegebene Statuswert eindeutig. Es funktioniert wie der DISTINCT-Operator, wie in der folgenden Abfrage gezeigt:

SELECT 
    status
FROM
    orders
GROUP BY status;

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: Was bedeutet Gruppe?

2. MySQL GROUP BY- und Aggregatfunktionen

Was bedeutet Gruppe?

können mit Aggregat ausgeführt werden Funktionen Berechnet eine Reihe von Zeilen und gibt einen einzelnen Wert zurück. Die GROUP BY-Klausel wird häufig mit Aggregatfunktionen verwendet, um Berechnungen für jede Gruppe durchzuführen und einen einzelnen Wert zurückzugeben.

Wenn Sie beispielsweise die Anzahl der Bestellungen in jedem Status wissen möchten, können Sie die COUNT-Funktion und die Abfrageanweisung der GROUP BY-Klausel verwenden, wie unten gezeigt:

SELECT DISTINCT
    status
FROM
    orders;

Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse:

Bitte beachten Sie die folgenden Tabellen zu Bestellungen (Bestellungen) und Bestelldetails (Bestelldetails), deren ER-Diagramm ist unten dargestellt -

Was bedeutet Gruppe?

Um den Gesamtbetrag aller Bestellungen nach Status zu erhalten, können Sie die Bestelldetails verwenden Tabelle, um die Auftragstabelle zu verbinden, und verwenden Sie die SUMME-Funktion, um den Gesamtbetrag zu berechnen. Bitte beziehen Sie sich auf die folgende Abfrage:

SELECT 
    status, COUNT(*) AS total_number
FROM
    orders
GROUP BY status;

Das Ausführen der obigen Abfrage führt zu den folgenden Ergebnissen: Was bedeutet Gruppe?

Ähnlicherweise gibt die folgende Abfrage die Bestellnummer und den Gesamtbetrag jeder Bestellung zurück.

SELECT 
    status, SUM(quantityOrdered * priceEach) AS amount
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
GROUP BY status;

Führen Sie die obige Abfrage aus und erhalten Sie die folgenden Ergebnisse: Was bedeutet Gruppe?

3. MySQL GROUP BY-Ausdrucksbeispiel

Was bedeutet Gruppe?

Zusätzlich zu Spalten können Zeilen nach Ausdrücken gruppiert werden. Die folgende Abfrage ermittelt den Gesamtumsatz pro Jahr.

SELECT 
    orderNumber,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orderdetails
GROUP BY orderNumber;
Führen Sie die obige Abfrage aus und erhalten Sie die folgenden Ergebnisse:

In diesem Beispiel verwenden wir die YEAR-Funktion, um die Jahresdaten aus dem Bestelldatum (orderDate) zu extrahieren. Es werden nur Bestellungen mit dem Status „Versendet“ berücksichtigt. Beachten Sie, dass die in der SELECT-Klausel vorkommenden Ausdrücke mit denen in der GROUP BY-Klausel identisch sein müssen.

Was bedeutet Gruppe?MySQL GROUP BY- und HAVING-Klausel

Sie können die HAVING-Klausel verwenden, um die von der GROUP BY-Klausel zurückgegebenen Gruppen zu filtern. Die folgende Abfrage verwendet die HAVING-Klausel, um die Jahresumsatzsummen ab 2013 auszuwählen.

SELECT 
    YEAR(orderDate) AS year,
    SUM(quantityOrdered * priceEach) AS total
FROM
    orders
        INNER JOIN
    orderdetails USING (orderNumber)
WHERE
    status = 'Shipped'
GROUP BY YEAR(orderDate);
Führen Sie die obige Abfrage aus und erhalten Sie die folgenden Ergebnisse -

Was bedeutet Gruppe?

GROUP BY子句:MySQL与标准SQL

标准SQL不允许使用GROUP BY子句中的别名,但MySQL支持此选项。以下查询从订单日期提取年份,并对每年的订单进行计数。该year用作表达式YEAR(orderDate)的别名,它也用作GROUP BY子句中的别名,此查询在标准SQL中无效。

参考以下查询 -

SELECT 
    YEAR(orderDate) AS year, COUNT(orderNumber)
FROM
    orders
GROUP BY year;

执行上面查询,得到以下结果 -

Was bedeutet Gruppe?

MySQL还允许您以升序或降序(标准SQL不能提供)对组进行排序。默认顺序是升序。例如,如果要按状态获取订单数量并按降序对状态进行排序,则可以使用带有DESC的GROUP BY子句,如下查询语句:

SELECT 
    status, COUNT(*)
FROM
    orders
GROUP BY status DESC;

执行上面查询,得到以下结果 -

1Was bedeutet Gruppe?

请注意,在GROUP BY子句中使用DESC以降序对状态进行排序。我们还可以在GROUP BY子句中明确指定ASC,按状态对分组进行升序排序。

【相关推荐:mysql视频教程

Das obige ist der detaillierte Inhalt vonWas bedeutet Gruppe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn