FirebirdSQL logo

MIN-Beispiele

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

SUM()

Verfügbar in

DSQL, ESQL, PSQL

Rückgabetyp

Abhängig vom Eingangstyp

Syntax
SUM ([ALL | DISTINCT] <expr>)
Table 1. SUM-Funktionsparameter
Parameter Beschreibung

expr

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

SUM berechnet die Summe der Nicht-Null-Werte in der Gruppe und gibt sie zurück.

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

  • ALL ist die Standardoption — alle Werte in der Menge, die nicht NULL sind, werden verarbeitet.Bei Angabe von DISTINCT werden Duplikate aus dem Set entfernt und anschließend die SUM-Auswertung durchgeführt.

Der Ergebnistyp von SUM hängt vom Eingabetyp ab:

FLOAT, DOUBLE PRECISION

DOUBLE PRECISION

SMALLINT, INTEGER

BIGINT

BIGINT, INT128

INT128

DECIMAL/NUMERIC(p, n) with p < 10

DECIMAL/NUMERIC(18, n)

DECIMAL/NUMERIC(p, n) with p >= 10

DECIMAL/NUMERIC(38, n)

DECFLOAT(16), DECFLOAT(34)

DECFLOAT(34)

docnext count = 27

SUM-Beispiele

SELECT
  dept_no,
  SUM (salary),
FROM employee
GROUP BY dept_no
Siehe auch

SELECT

Statistische Aggregatfunktionen

CORR()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
CORR ( <expr1>, <expr2> )
Table 1. CORR-Funktionsparameter
Parameter Beschreibung

exprN

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

Die Funktion CORR gibt den Korrelationskoeffizienten für ein Paar numerischer Ausdrücke zurück.

Die Funktion CORR(<expr1>, <expr2>) ist äquivalent zu

COVAR_POP(<expr1>, <expr2>) / (STDDEV_POP(<expr2>) * STDDEV_POP(<expr1>))

Dies wird auch als Korrelationskoeffizient nach Pearson bezeichnet.

Im statistischen Sinne ist Korrelation der Grad, mit dem ein Variablenpaar linear verbunden ist.Eine lineare Beziehung zwischen Variablen bedeutet, dass der Wert einer Variablen bis zu einem gewissen Grad den Wert der anderen vorhersagen kann.Der Korrelationskoeffizient stellt den Korrelationsgrad als Zahl von -1 (hohe inverse Korrelation) bis 1 (hohe Korrelation) dar.Ein Wert von 0 entspricht keiner Korrelation.

Wenn die Gruppe oder das Fenster leer ist oder nur NULL-Werte enthält, ist das Ergebnis NULL.

COVAR_POP()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
COVAR_POP ( <expr1>, <expr2> )
Table 1. COVAR_POP-Funktionsparameter
Parameter Beschreibung

exprN

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

Die Funktion COVAR_POP gibt die Populationskovarianz für ein Paar numerischer Ausdrücke zurück.

Die Funktion COVAR_POP(<expr1>, <expr2>) ist äquivalent zu

(SUM(<expr1> * <expr2>) - SUM(<expr1>) * SUM(<expr2>) / COUNT(*)) / COUNT(*)

Wenn die Gruppe oder das Fenster leer ist oder nur NULL-Werte enthält, ist das Ergebnis NULL.

COVAR_SAMP()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
COVAR_SAMP ( <expr1>, <expr2> )
Table 1. COVAR_SAMP-Funktionsparameter
Parameter Beschreibung

exprN

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

Die Funktion COVAR_SAMP gibt die Stichprobenkovarianz für ein Paar numerischer Ausdrücke zurück.

Die Funktion COVAR_SAMP(<expr1>, <expr2>) ist äquivalent zu

(SUM(<expr1> * <expr2>) - SUM(<expr1>) * SUM(<expr2>) / COUNT(*)) / (COUNT(*) - 1)

Wenn die Gruppe oder das Fenster leer ist, nur 1 Zeile enthält oder nur NULL-Werte enthält, ist das Ergebnis NULL.

STDDEV_POP

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION oder NUMERIC je nach Typ von expr

Syntax
STDDEV_POP ( <expr> )
Table 1. STDDEV_POP-Funktionsparameter
Parameter Beschreibung

expr

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

Die Funktion STDDEV_POP gibt die Populationsstandardabweichung für eine Gruppe oder ein Fenster zurück.NULL-Werte werden übersprungen.

Die Funktion STDDEV_POP(<expr>) ist äquivalent zu

SQRT(VAR_POP(<expr>))

Wenn die Gruppe oder das Fenster leer ist oder nur NULL-Werte enthält, ist das Ergebnis NULL.

STDDEV_POP-Beispiele

select
  dept_no
  stddev_pop(salary)
from employee
group by dept_no

STDDEV_SAMP()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION oder NUMERIC je nach Typ von expr

Syntax
STDDEV_POP ( <expr> )
Table 1. STDDEV_SAMP-Funktionsparameter
Parameter Beschreibung

expr

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

Die Funktion STDDEV_SAMP gibt die Standardabweichung der Stichprobe für eine Gruppe oder ein Fenster zurück.NULL-Werte werden übersprungen.

Die Funktion STDDEV_SAMP(<expr>) ist äquivalent zu

SQRT(VAR_SAMP(<expr>))

Wenn die Gruppe oder das Fenster leer ist, nur 1 Zeile enthält oder nur NULL-Werte enthält, ist das Ergebnis NULL.

STDDEV_SAMP-Beispiele

select
  dept_no
  stddev_samp(salary)
from employee
group by dept_no

VAR_POP()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION oder NUMERIC je nach Typ von expr

Syntax
VAR_POP ( <expr> )
Table 1. VAR_POP-Funktionsparameter
Parameter Beschreibung

expr

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

Die Funktion VAR_POP gibt die Populationsvarianz für eine Gruppe oder ein Fenster zurück.NULL-Werte werden übersprungen.

Die Funktion VAR_POP(<expr>) ist äquivalent zu

(SUM(<expr> * <expr>) - SUM (<expr>) * SUM (<expr>) / COUNT(<expr>))
  / COUNT (<expr>)

Wenn die Gruppe oder das Fenster leer ist oder nur NULL-Werte enthält, ist das Ergebnis NULL.

VAR_SAMP()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION oder NUMERIC je nach Typ von expr

Syntax
VAR_SAMP ( <expr> )
Table 1. VAR_SAMP-Funktionsparameter
Parameter Beschreibung

expr

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

Die Funktion VAR_POP gibt die Stichprobenvarianz für eine Gruppe oder ein Fenster zurück.NULL-Werte werden übersprungen.

Die Funktion VAR_SAMP(<expr>) ist äquivalent zu

(SUM(<expr> * <expr>) - SUM(<expr>) * SUM (<expr>) / COUNT (<expr>))
  / (COUNT(<expr>) - 1)

Wenn die Gruppe oder das Fenster leer ist, nur 1 Zeile enthält oder nur NULL-Werte enthält, ist das Ergebnis NULL.

Aggregatfunktionen der linearen Regression

Lineare Regressionsfunktionen sind nützlich für die Fortsetzung von Trendlinien.Die Trend- oder Regressionslinie ist normalerweise ein Muster, dem eine Reihe von Werten folgt.Die lineare Regression ist nützlich, um zukünftige Werte vorherzusagen.Um die Regressionsgerade fortzusetzen, müssen Sie die Steigung und den Schnittpunkt mit der y-Achse kennen.Zur Berechnung dieser Werte kann ein Satz linearer Funktionen verwendet werden.

In der Funktionssyntax wird y als x-abhängige Variable interpretiert.

Die Aggregatfunktionen der linearen Regression verwenden ein Argumentpaar, den abhängigen Variablenausdruck (y) und den unabhängigen Variablenausdruck (x), die beide numerische Wertausdrücke sind.Jede Zeile, in der eines der Argumente als NULL ausgewertet wird, wird aus den qualifizierenden Zeilen entfernt.Wenn keine qualifizierenden Zeilen vorhanden sind, ist das Ergebnis von REGR_COUNT 0 (Null), und die anderen Aggregatfunktionen der linearen Regression ergeben NULL.

REGR_AVGX()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_AVGX ( <y>, <x> )
Table 1. REGR_AVGX-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_AVGX berechnet den Durchschnitt der unabhängigen Variablen (x) der Regressionsgerade.

Die Funktion REGR_AVGX(<y>, <x>) ist äquivalent zu

SUM(<exprX>) / REGR_COUNT(<y>, <x>)

<exprX> :==
  CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END

REGR_AVGY()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_AVGY ( <y>, <x> )
Table 1. REGR_AVGY-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_AVGY berechnet den Durchschnitt der abhängigen Variablen (y) der Regressionsgerade.

Die Funktion REGR_AVGY(<y>, <x>) ist äquivalent zu

SUM(<exprY>) / REGR_COUNT(<y>, <x>)

<exprY> :==
  CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <y> END

REGR_COUNT()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_COUNT ( <y>, <x> )
Table 1. REGR_COUNT-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_COUNT zählt die Anzahl der nicht leeren Paare der Regressionsgerade.

Die Funktion REGR_COUNT(<y>, <x>) ist äquivalent zu

SUM(<exprXY>) / REGR_COUNT(<y>, <x>)

<exprXY> :==
  CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN 1 END

REGR_INTERCEPT()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_INTERCEPT ( <y>, <x> )
Table 1. REGR_INTERCEPT-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_INTERCEPT berechnet den Schnittpunkt der Regressionsgerade mit der y-Achse.

Die Funktion REGR_INTERCEPT(<y>, <x>) ist äquivalent zu

REGR_AVGY(<y>, <x>) - REGR_SLOPE(<y>, <x>) * REGR_AVGX(<y>, <x>)

REGR_INTERCEPT-Beispiele

Prognose des Verkaufsvolumens

with recursive years (byyear) as (
  select 1991
  from rdb$database
  union all
  select byyear + 1
  from years
  where byyear < 2020
),
s as (
  select
    extract(year from order_date) as byyear,
    sum(total_value) as total_value
  from sales
  group by 1
),
regr as (
  select
    regr_intercept(total_value, byyear) as intercept,
    regr_slope(total_value, byyear) as slope
  from s
)
select
  years.byyear as byyear,
  intercept + (slope * years.byyear) as total_value
from years
cross join regr
BYYEAR TOTAL_VALUE
------ ------------
  1991    118377.35
  1992    414557.62
  1993    710737.89
  1994   1006918.16
  1995   1303098.43
  1996   1599278.69
  1997   1895458.96
  1998   2191639.23
  1999   2487819.50
  2000   2783999.77
...

REGR_R2()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_R2 ( <y>, <x> )
Table 1. REGR_R2-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_R2 berechnet das Bestimmtheitsmaß oder das R-Quadrat der Regressionsgerade.

Die Funktion REGR_R2(<y>, <x>) ist äquivalent zu

POWER(CORR(<y>, <x>), 2)

REGR_SLOPE()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_SLOPE ( <y>, <x> )
Table 1. REGR_SLOPE-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_SLOPE berechnet die Steigung der Regressionsgerade.

Die Funktion REGR_SLOPE(<y>, <x>) ist äquivalent zu

COVAR_POP(<y>, <x>) / VAR_POP(<exprX>)

<exprX> :==
  CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END

REGR_SXX()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_SXX ( <y>, <x> )
Table 1. REGR_SXX-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_SXX berechnet die Quadratsumme der unabhängigen Ausdrucksvariablen (x).

Die Funktion REGR_SXX(<y>, <x>) ist äquivalent zu

REGR_COUNT(<y>, <x>) * VAR_POP(<exprX>)

<exprX> :==
  CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <x> END

REGR_SXY()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_SXY ( <y>, <x> )
Table 1. REGR_SXY-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_SXY berechnet die Summe der Produkte des unabhängigen Variablenausdrucks (x) mal des abhängigen Variablenausdrucks (y).

Die Funktion REGR_SXY(<y>, <x>) ist äquivalent zu

REGR_COUNT(<y>, <x>) * COVAR_POP(<y>, <x>)

REGR_SYY()

Verfügbar in

DSQL, PSQL

Rückgabetyp

DOUBLE PRECISION

Syntax
REGR_SYY ( <y>, <x> )
Table 1. REGR_SYY-Funktionsparameter
Parameter Beschreibung

y

Abhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

x

Unabhängige Variable der Regressionsgerade.Sie kann eine Tabellenspalte, eine Konstante, eine Variable, einen Ausdruck, eine Nicht-Aggregatfunktion oder eine UDF enthalten.Aggregatfunktionen sind als Ausdrücke nicht zulässig.

Die Funktion REGR_SYY berechnet die Quadratsumme der abhängigen Variablen (y).

Die Funktion REGR_SYY(<y>, <x>) ist äquivalent zu

REGR_COUNT(<y>, <x>) * VAR_POP(<exprY>)

<exprY> :==
  CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN <y> END