Firebird Documentation IndexFirebird 2.5 SprachreferenzEingebaute Funktionen und Variablen → Aggregatfunktionen
Firebird Home Firebird Home Zurück: SkalarfunktionenFirebird Documentation IndexNach oben: Eingebaute Funktionen und VariablenWeiter: Transaktionskontrolle

Aggregatfunktionen

Inhaltsverzeichnis

AVG()
COUNT()
LIST()
MAX()
MIN()
SUM()

Aggregatfunktionen arbeiten mit Gruppen von Datensätzen und nicht mit einzelnen Datensätzen oder Variablen. Sie werden oft in Kombination mit einer Klausel GROUP BY verwendet.

AVG()

Verfügbar in: DSQL, ESQL, PSQL

Syntax: 

AVG ([ALL | DISTINCT] <expr>)
                        

Tabelle 8.69. AVG-Funktionsparameter

Parameter Beschreibung
expr Ausdruck. Es kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine nicht aggregierte Funktion oder eine benutzerdefinierte Funktion enthalten, die einen numerischen Datentyp zurückgibt. Aggregatfunktionen sind als Ausdrücke nicht zulässig


Beschreibung: AVG gibt den durchschnittlichen Argumentwert in der Gruppe zurück. NULL wird ignoriert.

  • Der Parameter ALL (der Standardwert) wendet die Aggregatfunktion auf alle Werte an.
  • Der Parameter DISTINCT weist die AVG-Funktion an, nur eine Instanz jedes eindeutigen Werts zu berücksichtigen, unabhängig davon, wie oft dieser Wert auftritt.
  • Wenn die Menge der abgerufenen Datensätze leer ist oder nur NULL enthält, ist das Ergebnis ebenfalls NULL.

Rückgabetyp: Ein numerischer Datentyp, der dem Datentyp des Arguments entspricht.

Syntax: 

AVG (expression)
  • Wenn die Menge der abgerufenen Datensätze leer ist oder nur NULL enthält, ist das Ergebnis ebenfalls NULL.

Beispiel: 

SELECT
  dept_no,
  AVG(salary)
FROM employee
GROUP BY dept_no
                        

Siehe auch:  SELECT

COUNT()

Verfügbar in: DSQL, ESQL, PSQL

Syntax: 

COUNT ([ALL | DISTINCT] <expr> | *)

Tabelle 8.70. COUNT-Funktionsparameter

Parameter Beschreibung
expr Ausdruck. Es kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine nicht aggregierte Funktion oder eine benutzerdefinierte Funktion enthalten, die einen numerischen Datentyp zurückgibt. Aggregatfunktionen sind als Ausdrücke nicht zulässig


Rückgabetyp: Integer

Beschreibung: COUNT gibt die Anzahl der nicht-null-Werte einer Menge zurück.

  • ALL ist der Standard: es werden alle Werte gezählt, die nicht NULL sind.
  • Wenn DISTINCT angegeben wurde, werden Duplikate aus der Zählung entfernt.
  • Wurde COUNT (*) anstelle eines Ausdrucks <expr> angegeben, werden alle Zeilen gezählt. COUNT (*)
    • akzeptiert keine Parameter
    • kann nicht mit dem Schlüsselwort DISTINCT verwendet werden
    • übernimmt kein <expr>-Argument, da sein Kontext während der Definition spaltenunspezifisch ist
    • zählt jede Zeile einzeln und gibt die Anzahl der Zeilen in der angegebenen Tabelle oder Gruppe zurück, ohne doppelte Zeilen zu entfernen
    • zähle Zeilen, die NULL enthalten
  • Wenn die Ergebnismenge leer ist oder nur NULL in der(den) angegebenen Spalte(n) enthält, ist die zurückgegebene Anzahl Null.

Beispiel: 

SELECT
  dept_no,
  COUNT(*) AS cnt,
  COUNT(DISTINCT name) AS cnt_name
FROM employee
GROUP BY dept_no
                        

Siehe auch:  SELECT.

LIST()

Verfügbar in: DSQL, PSQL

Geändert in: 2.5

Syntax: 

LIST ([ALL | DISTINCT] expression [, separator])

Tabelle 8.71. LIST-Funktionsparameter

Parameter Beschreibung
expr Ausdruck. Es kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten, die den String-Datentyp oder ein BLOB zurückgibt. Felder von numerischen und Datum / Uhrzeit-Typen werden in Zeichenfolgen konvertiert. Aggregatfunktionen sind als Ausdrücke nicht zulässig
separator Optionales alternatives Trennzeichen, ein Zeichenfolgenausdruck. Komma ist das Standardtrennzeichen


Rückgabetyp: BLOB

Beschreibung: LIST gibt eine Zeichenfolge zurück, die aus den Nicht-Konstantenwerten NULL und Konstanten in der Gruppe besteht, die entweder durch ein Komma oder durch ein benutzerdefiniertes Trennzeichen getrennt sind. Wenn es keine nicht-NULL-Werte gibt (dies schließt den Fall ein, dass die Gruppe leer ist), wird NULL zurückgegeben.

  • ALL (der Standard) ergibt, dass alle nicht-NULL-Werte aufgelistet werden. Mit DISTINCT werden Duplikate entfernt, es sei denn expression ist ein BLOB.

  • In Firebird 2.5 und später, kann das optionale Trennzeichen ein beliebiger String-Ausdruck sein. Damit ist es beispielsweise möglich ascii_char(13) als Trenner zu definieren. (Diese Verbesserung wurde auch auf 2.1.4 zurückversetzt.)

  • Die Argumente expression und separator unterstützen BLOBs beliebiger Größe und beliebigen Zeichensatzes.

  • Datum / Uhrzeit und numerische Argumente werden implizit vor der Verkettung in Zeichenfolgen konvertiert.

  • Das Ergebnis ist ein Text-BLOB, außer expression ist ein BLOB eines anderen Untertyps.

  • Die Reihenfolge der Listenwerte ist undefiniert. Die Reihenfolge, in der die Strings verkettet werden, wird durch die Lesereihenfolge aus der Quellenmenge bestimmt, die in Tabellen nicht allgemein definiert ist. Wenn die Reihenfolge wichtig ist, können die Quelldaten mit einer abgeleiteten Tabelle oder ähnlichem vorsortiert werden.

Beispiele: 

  1. Abrufen der Liste, Reihenfolge undefiniert:
    SELECT LIST (display_name, '; ') FROM GR_WORK;
                              
  2. Abrufen der Liste in alphabetischer Reihenfolge mit einer abgeleiteten Tabelle:
    SELECT LIST (display_name, '; ')
    FROM (SELECT display_name
          FROM GR_WORK
          ORDER BY display_name);
                              

Siehe auch:  SELECT

MAX()

Verfügbar in: DSQL, ESQL, PSQL

Syntax: 

MAX ([ALL | DISTINCT] <expr>)

Tabelle 8.72. MAX-Funktionsparameter

Parameter Beschreibung
expr Ausdruck. Es kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten. Aggregatfunktionen sind als Ausdrücke nicht zulässig.


Rückgabetyp: Gibt ein Ergebnis desselben Datentyps als Eingabeausdruck zurück.

Beschreibung: MAX gibt das größte nicht-NULL-Element der Ergebnismenge zurück.

  • Ist die Menge leer oder enthält nur NULL, ist das Ergebnis NULL.

  • Wenn das Eingabeargument eine Zeichenfolge ist, gibt die Funktion den Wert zurück, der zuletzt sortiert wird, wenn COLLATE verwendet wird.
  • Diese Funktion unterstützt vollständig Text BLOBs beliebiger Größe und Zeichensatz.

Anmerkung

Der Parameter DISTINCT hat keinen Sinn, wenn er mit MAX() verwendet wird und nur für die Einhaltung des Standards implementiert ist.

Beispiel: 

SELECT
  dept_no,
  MAX(salary)
FROM employee
GROUP BY dept_no
                          

Siehe auch:  MIN, SELECT

MIN()

Verfügbar in: DSQL, ESQL, PSQL

Syntax: 

MIN ([ALL | DISTINCT] <expr>)

Tabelle 8.73. MIN-Funktionsparameter

Parameter Beschreibung
expr Ausdruck. Es kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten. Aggregatfunktionen sind als Ausdrücke nicht zulässig.


Rückgabetyp: Gibt ein Ergebnis desselben Datentyps als Eingabeausdruck zurück.

Beschreibung: MIN gibt das größte nicht-NULL-Element der Ergebnismenge zurück.

  • Ist die Menge leer oder enthält nur NULL, ist das Ergebnis NULL.

  • Wenn das Eingabeargument eine Zeichenfolge ist, gibt die Funktion den Wert zurück, der zuletzt sortiert wird, wenn COLLATE verwendet wird.
  • Diese Funktion unterstützt vollständig Text BLOBs beliebiger Größe und Zeichensatz.

Anmerkung

Der Parameter DISTINCT hat keinen Sinn, wenn er mit MIN() verwendet wird und nur für die Einhaltung des Standards implementiert ist.

Beispiel: 

SELECT
  dept_no,
  MIN(salary)
FROM employee
GROUP BY dept_no
                          

Siehe auch:  MAX, SELECT

SUM()

Verfügbar in: DSQL, ESQL, PSQL

Syntax: 

SUM ([ALL | DISTINCT] <expr>)

Tabelle 8.74. SUM-Funktionsparameter

Parameter Beschreibung
expr Numerischer Ausdruck Es kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten. Aggregatfunktionen sind als Ausdrücke nicht zulässig.


Rückgabetyp: Gibt ein Ergebnis des gleichen numerischen Datentyps wie der Eingabeausdruck zurück.

Beschreibung: SUM berechnet und gibt die Summe der nicht-Null-Werte in der Gruppe zurück.

  • Wenn die Gruppe leer ist oder nur NULL enthält, ist das Ergebnis ebenfalls NULL.

  • ALL ist die Standardoption — alle Werte in der Gruppe, die nicht NULL sind, werden verarbeitet. Wenn DISTINCT angegeben ist, werden Duplikate aus der Datenmenge entfernt, und die Auswertung SUM erfolgt anschließend.

Beispiel:  SELECT dept_no, SUM (salary), FROM employee GROUP BY dept_no

                          

Siehe auch:  SELECT

Zurück: SkalarfunktionenFirebird Documentation IndexNach oben: Eingebaute Funktionen und VariablenWeiter: Transaktionskontrolle
Firebird Documentation IndexFirebird 2.5 SprachreferenzEingebaute Funktionen und Variablen → Aggregatfunktionen