Heim >Datenbank >Oracle >So verwenden Sie Oracle Group by

So verwenden Sie Oracle Group by

青灯夜游
青灯夜游Original
2022-03-17 12:47:5210512Durchsuche

In Oracle muss das Schlüsselwort „group by“ zusammen mit der SELECT-Anweisung verwendet werden, um Abfrageergebnisse zu gruppieren. Syntax „SELECT field list“ FROM data table name GROUP BY-Feldname;".

So verwenden Sie Oracle Group by

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.

Einführung in die Oracle GROUP BY-Klausel

Das Schlüsselwort GROUP BY kann Abfrageergebnisse basierend auf einem oder mehreren Feldern gruppieren.

Die GROUP BY-Klausel wird in der SELECT-Anweisung verwendet, um Zeilen nach dem Wert der Zeile oder des Ausdrucks zu gruppierten Zusammenfassungszeilen zu kombinieren. Die GROUP BY-Klausel gibt eine Zeile für jede Gruppe zurück.

GROUP BY-Klausel wird normalerweise mit Aggregatfunktionen wie AVG(), COUNT(), MAX(), MIN() und SUM() verwendet. In diesem Fall gibt die Aggregatfunktion zusammenfassende Informationen für jede Gruppierung zurück. Bei mehreren Produktkategorien gibt die Funktion AVG() beispielsweise den Durchschnittspreis der Produkte in jeder Kategorie zurück.

Das Folgende veranschaulicht die Syntax der Oracle GROUP BY-Klausel:

SELECT
    字段列表
FROM
    数据表名
GROUP BY
    字段名;

Die GROUP BY-Klausel erscheint nach der FROM-Klausel. Wenn eine WHERE-Klausel bereitgestellt wird, muss die GROUP BY-Klausel vor der WHERE-Klausel platziert werden.

GROUP BY-Klausel gruppiert Zeilen nach den Werten in der Gruppierungsspalte wie c1, c2 und c3. Die GROUP BY-Klausel kann nur aggregierte oder gruppierte Spalten enthalten.

Wenn Sie mehrere Gruppierungsebenen angeben möchten, die gleichzeitig berechnet werden sollen, verwenden Sie die folgende ROLLUP-Syntax:

SELECT
    字段列表
FROM
    数据表名
GROUP BY
    ROLLUP(c1,c2,c3);

Oracle GROUP BY-Beispiel

Wir verwenden die folgenden orders und order_items Tabelle zur Demonstration: ordersorder_items表进行演示:

So verwenden Sie Oracle Group by

1. Oracle GROUP BY的基本示例

以下语句使用GROUP BY子句在orders表中查找唯一的订单状态:

SELECT
    status
FROM
    orders
GROUP BY
    status;

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

So verwenden Sie Oracle Group by

该语句与使用DISTINCT运算符的以下语句具有相同的效果:

SELECT
    DISTINCT status
FROM
    orders;

2. Oracle GROUP BY聚合示例

以下语句返回客户的订单数量:

SELECT
    customer_id, COUNT( order_id )
FROM
    orders
GROUP BY
    customer_id
ORDER BY
    customer_id;

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

So verwenden Sie Oracle Group by

在这个例子中,我们按客户编号来分组订单,并使用COUNT()函数返回每个组的订单数量。

要获得更有意义的数据,可以按以下方式将orders表与customers表一起连接:

SELECT
    name, COUNT( order_id )
FROM
    orders
INNER JOIN customers
        USING(customer_id)
GROUP BY
    name
ORDER BY
    name;

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

So verwenden Sie Oracle Group by

3. Oracle GROUP BY表达式示例

以下示例按年份对订单进行分组,并返回每年订单的数量。参考以下查询语句 -

SELECT
    EXTRACT(YEAR FROM order_date) YEAR,
    COUNT( order_id )
FROM
    orders
GROUP BY
    EXTRACT(YEAR FROM order_date)
ORDER BY
    YEAR;

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

So verwenden Sie Oracle Group by

在这个例子中,我们使用EXTRACT()函数从订单的日期中获取年份信息。

与前面的例子不同,这里使用了一个在GROUP BY子句中返回年份的表达式。

4. Oracle GROUP BY带有ROLLUP示例

以下语句计算销售额并按customer_idstatus和(customer_idstatus

So verwenden Sie Oracle Group by

1 Einfaches Beispiel für Oracle GROUP BYSo verwenden Sie Oracle Group by

Die folgenden Anweisungen verwenden GROUP BYcode >Clause findet den eindeutigen Bestellstatus in der Tabelle <code>orders:

SELECT
    customer_id,
    status,
    SUM( quantity * unit_price ) sales
FROM
    orders
INNER JOIN order_items
        USING(order_id)
GROUP BY
    ROLLUP(
        customer_id,
        status
    );
Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse-

🎜So verwenden Sie Oracle Group by🎜🎜Diese Anweisung hat die gleiche Wirkung wie die folgende Anweisung unter Verwendung des DISTINCT-Operator Wirkung: 🎜rrreee🎜🎜<span style="max-width:90%">2. Oracle GROUP BY-Aggregationsbeispiel</span>🎜🎜🎜Die folgende Anweisung gibt die Bestellmenge des Kunden zurück: 🎜rrreee🎜Execute Erhalten Sie mit der obigen Abfrageanweisung die folgenden Ergebnisse: "So verwenden Sie Oracle Group by"/ >🎜🎜In diesem Beispiel gruppieren wir die Bestellungen nach Kundennummer und verwenden die Funktion <code>COUNT(), um die Bestellmenge für jede Gruppe zurückzugeben. 🎜🎜Um aussagekräftigere Daten zu erhalten, können Sie die Tabelle orders und die Tabelle customers wie folgt miteinander verbinden: 🎜rrreee🎜Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: 🎜 🎜So verwenden Sie Oracle Group by🎜🎜🎜 3. Oracle GROUP BY-Ausdruck🎜🎜🎜Das folgende Beispiel gruppiert Bestellungen nach Jahr und gibt die Menge der Bestellungen in jedem Jahr zurück. Beziehen Sie sich auf die folgende Abfrageanweisung: 🎜rrreee🎜Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: 🎜🎜So verwenden Sie Oracle Group by🎜🎜In diesem Beispiel verwenden wir die Funktion EXTRACT(), um die Jahresinformationen aus dem Datum der Bestellung abzurufen. 🎜🎜Anders als im vorherigen Beispiel wird hier ein Ausdruck verwendet, der das Jahr in der GROUP BY-Klausel zurückgibt. 🎜🎜🎜4. Oracle GROUP BY mit ROLLUP-Beispiel🎜🎜🎜Die folgende Anweisung berechnet Verkäufe nach customer_id, status und (customer_id, status) gruppieren sie: 🎜rrreee🎜Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse – 🎜🎜🎜🎜🎜Empfohlenes Tutorial: „ 🎜Oracle-Tutorial🎜"🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Oracle Group by. 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