FirebirdSQL logo

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.

docnext count = 12

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