COUNT-Funktion Oracle/PLSQL

In diesem Oracle-Lernprogramm wird erläutert, wie Sie die Oracle/PLSQL COUNT-Funktion mit Syntax und Beispielen verwenden.

Beschreibung

Die Oracle/PLSQL COUNT-Funktion gibt die Anzahl eines Ausdrucks zurück.

Syntax

Die Syntax für die COUNT-Funktion in Oracle/PLSQL lautet:

SELECT COUNT(aggregate_expression)
FROM tables
[WHERE conditions];

ODER die Syntax für die Funktion COUNT, wenn die Ergebnisse nach einer oder mehreren Spalten gruppiert werden:

SELECT expression1, expression2, … expression_n,
COUNT(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, … expression_n;

Parameter oder Argumente

expression1, expression2, … expression_n Ausdrücke, die nicht in der COUNT-Funktion gekapselt sind und in der GROUP BY-Klausel am Ende der SQL-Anweisung enthalten sein müssen.

aggregate_expression Dies ist die Spalte oder der Ausdruck, dessen Nicht-Null-Werte gezählt werden.

tables Die Tabellen, von denen Sie Datensätze abrufen möchten. In der FROM-Klausel muss mindestens eine Tabelle aufgeführt sein.

WHERE conditions Wahlweise. Dies sind Bedingungen, die erfüllt sein müssen, damit die Datensätze ausgewählt werden können.

Kehrt zurück

  • Die COUNT-Funktion gibt einen numerischen Wert zurück.

Enthält nur NOT NULL-Werte

Nicht jeder erkennt dies, aber die COUNT-Funktion enthält nur die Datensätze in der Zählung, in der der Wert des Ausdrucks in COUNT (Ausdruck) NICHT NULL ist. Wenn Ausdruck einen NULL-Wert enthält, wird er nicht in die COUNT-Berechnungen einbezogen.

Schauen wir uns ein COUNT-Funktionsbeispiel an, das zeigt, wie NULL-Werte von der COUNT-Funktion ausgewertet werden.

Wenn Sie beispielsweise die folgende Tabelle Lieferanten genannt haben:

supplier_id supplier_name state
1 IBM CA
2 Microsoft
3 NVIDIA

Und wenn Sie die folgende SELECT-Anweisung ausführen, die die COUNT-Funktion verwendet:

Dieses COUNT-Beispiel gibt 3 zurück, da alle supplier_id-Werte in der Ergebnismenge der Abfrage NICHT NULL sind.

Wenn Sie jedoch die nächste SELECT-Anweisung ausführen, die die COUNT-Funktion verwendet:

Dieses COUNT-Beispiel gibt nur 1 zurück, da nur ein Statuswert in der Ergebnismenge der Abfrage NICHT NULL ist. Das wäre die erste Zeile, in der der Status „CA“ lautet. Es ist die einzige Zeile, die in der Berechnung der COUNT-Funktion enthalten ist.

Gilt für

Die COUNT-Funktion kann in folgenden Versionen von Oracle/PLSQL verwendet werden:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Beispiel – mit Einzelfeld

Sehen wir uns einige Oracle COUNT-Funktionsbeispiele an und untersuchen Sie, wie Sie die COUNT-Funktion in Oracle/PLSQL verwenden.

Zum Beispiel möchten Sie vielleicht wissen, wie viele Angestellte ein Gehalt von über 35000 USD / Jahr haben.

In diesem COUNT-Funktionsbeispiel haben wir den COUNT (*) Ausdruck als „Number of employees“ markiert. Als Ergebnis wird „Number of employees“ als Feldname angezeigt, wenn die Ergebnismenge zurückgegeben wird.

Beispiel – Verwenden von DISTINCT

Sie können die DISTINCT-Klausel innerhalb der COUNT-Funktion verwenden. Die folgende SQL-Anweisung gibt beispielsweise die Anzahl der eindeutigen Abteilungen zurück, in denen mindestens ein employees mehr als 25000 USD pro Jahr verdient.

Auch hier ist das Feld COUNT (DISTINCT department) als „Unique departments“ gekennzeichnet. Dies ist der Feldname, der in der Ergebnismenge angezeigt wird.

Beispiel – Verwenden von GROUP BY

In einigen Fällen müssen Sie die GROUP BY-Klausel mit der COUNT-Funktion verwenden.

Sie können z. B. auch die COUNT-Funktion verwenden, um den Namen der Abteilung und die Anzahl der Mitarbeiter (in der zugehörigen Abteilung) im state „CA“ zurückzugeben.

Da Sie in Ihrer SELECT-Anweisung eine Spalte aufgelistet haben, die nicht in der COUNT-Funktion gekapselt ist, müssen Sie eine GROUP BY-Klausel verwenden. Das Abteilungsfeld muss daher im Abschnitt GROUP BY aufgeführt sein.