FirebirdSQL logo

Exemples MIN

Example 1. En utilisant la fonction MIN
SELECT
  dept_no,
  MIN(salary)
FROM employee
GROUP BY dept_no

SUM()

Disponible en

DSQL

Syntaxe
SUM([ALL | DISTINCT] <expr>)
Table 1. paramètres de fonction SUM
Paramètre Description

expr

Expression : peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

DOUBLE PRECISION, DECFLOAT ou un entier scalable (INTEGER, BIGINT ou INT128) selon le type d’argument de la fonction expr.Normalement, si possible, on choisit un type dont la capacité est supérieure à celle du type d’expression expr.

La fonction SUM renvoie la somme des éléments de l’échantillon qui ne sont pas égaux à NULL.

  • ALL est l’option par défaut — toutes les valeurs de l’échantillon qui ne contiennent pas NULL sont traitées.Si DISTINCT est spécifié, les doublons sont retirés de l’échantillon et la somme est ensuite effectuée.

  • Pour un échantillon vide, ou un échantillon ne contenant que NULL, la fonction retournera NULL.

Exemples SUM

Example 1. En utilisant la fonction SUM
SELECT
  dept_no,
  SUM(salary)
FROM employee
GROUP BY dept_no
Voir aussi :

SELECT.

Fonctions statistiques

Les fonctions statistiques sont des fonctions d’agrégation. Ces fonctions ne considèrent pas les valeurs NULL. Les paramètres ALL et DISTINCT ne s’appliquent pas à l’argument d’une fonction statistique.

Les fonctions statistiques sont souvent utilisées en conjonction avec la suggestion GROUP BY.

CORR()

Disponible en

DSQL

Syntaxe
CORR(<expr1>, <expr2>)
Table 1. paramètres de fonction CORR
Paramètre Description

expr1, expr2

Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression.

type de résultat de retour

DOUBLE PRECISION

La fonction CORR renvoie le coefficient de corrélation pour une paire d’expressions renvoyant des valeurs numériques.

La fonction CORR(<expr1>, <expr2>) est équivalente à

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

En termes statistiques, la corrélation est le degré de relation entre les variables. La corrélation entre les variables signifie que la valeur d’une variable peut être prédite dans une certaine mesure par la valeur de l’autre. Le coefficient de corrélation représente le degré de corrélation sous la forme d’un nombre compris entre -1 (corrélation inverse élevée) et 1 (corrélation élevée). Une valeur de 0 correspond à une absence de corrélation.

Si l’échantillon d’enregistrement est vide ou ne contient que des valeurs NULL, le résultat contiendra NULL.

Exemples CORR

Example 1. En utilisant la fonction CORR
SELECT
    CORR(alength, aheight) AS c_corr
FROM measure

COVAR_POP()

Disponible en

DSQL

Syntaxe
COVAR_POP(<expr1>, <expr2>)
Table 1. paramètres de fonction COVAR_POP
Paramètre Description

expr1, expr2

Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression.

type de résultat de retour

DOUBLE PRECISION

La fonction COVAR_POP retourne la covariance de population de paires d’expressions avec des valeurs numériques.

La fonction COVAR_POP(<expr1>, <expr2>) est équivalente à

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

Si la sélection d’enregistrements est vide ou ne contient que des valeurs NULL, le résultat contiendra NULL.

Exemples COVAR_POP

Example 1. En utilisant la fonction COVAR_POP
SELECT
    COVAR_POP(alength, aheight) AS c_corr
FROM measure

COVAR_SAMP()

Disponible en

DSQL

Syntaxe
COVAR_SAMP(<expr1>, <expr2>)
Table 1. paramètres de fonction COVAR_SAMP
Paramètre Description

expr1, expr2

Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression.

type de résultat de retour

DOUBLE PRECISION

La fonction COVAR_SAMP retourne la covariance d’échantillon d’une paire d’expressions avec des valeurs numériques.

La fonction COVAR_SAMP(<expr1>, <expr2>) est équivalente à

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

Si la sélection d’enregistrements est vide, ne contient qu’un seul enregistrement ou ne contient que des valeurs NULL, le résultat contiendra NULL.

Exemples COVAR_SAMP

Example 1. En utilisant la fonction COVAR_SAMP
SELECT
    COVAR_SAMP(alength, aheight) AS c_corr
FROM measure

STDDEV_POP()

Disponible en

DSQL

Syntaxe
STDDEV_POP(<expr>)
Table 1. paramètres de fonction STDDEV_POP
Paramètre Description

expr

Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression.

type de résultat de retour

DOUBLE PRECISION ou NUMERIC selon le type expr.

La fonction STDDEV_POP retourne l’écart-type du groupe. Les valeurs NULL sont ignorées.

La fonction STDDEV_POP(<expr>) est équivalente à

SQRT(VAR_POP(<expr>))

Si la sélection d’enregistrements est vide ou ne contient que des valeurs NULL, le résultat contiendra NULL.

Exemples STDDEV_POP

Example 1. En utilisant la fonction STDDEV_POP
SELECT
  dept_no,
  STDDEV_POP(salary)
FROM employee
GROUP BY dept_no

STDDEV_SAMP()

Disponible en

DSQL

Syntaxe
STDDEV_SAMP(<expr>)
Table 1. paramètres de fonction STDDEV_SAMP
Paramètre Description

expr

Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression.

type de résultat de retour

DOUBLE PRECISION ou NUMERIC selon le type expr.

La fonction STDDEV_SAMP renvoie l’écart-type du groupe. Les valeurs NULL sont ignorées.

La fonction STDDEV_SAMP(<expr>) est équivalente à

SQRT(VAR_SAMP(<expr>))

Si la sélection d’enregistrements est vide, ne contient qu’un seul enregistrement ou ne contient que des valeurs NULL, le résultat contiendra NULL.

Exemples STDDEV_SAMP

Example 1. En utilisant la fonction STDDEV_SAMP
SELECT
  dept_no,
  STDDEV_SAMP(salary)
FROM employee
GROUP BY dept_no

VAR_POP()

Disponible en

DSQL

Syntaxe
VAR_POP(<expr>)
Table 1. paramètres de fonction VAR_POP
Paramètre Description

expr

Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression.

type de résultat de retour

DOUBLE PRECISION ou NUMERIC selon le type expr.

La fonction VAR_POP renvoie la variance échantillonnée pour le groupe. Les valeurs NULL sont ignorées.

La fonction VAR_POP(<expr>) est équivalente à

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

Si la sélection d’enregistrements est vide ou ne contient que des valeurs NULL, le résultat contiendra NULL.

Exemples VAR_POP

Example 1. En utilisant la fonction VAR_POP
SELECT
  dept_no,
  VAR_POP(salary)
FROM employee
GROUP BY dept_no

VAR_SAMP()

Disponible en

DSQL

Syntaxe
VAR_SAMP(<expr>)
Table 1. paramètres de fonction VAR_SAMP
Paramètre Description

expr

Une expression renvoie un type de données numériques. Elle peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR. Les fonctions agrégées ne sont pas autorisées en tant qu’expression.

type de résultat de retour

DOUBLE PRECISION ou NUMERIC selon le type expr.

La fonction VAR_SAMP renvoie la variance d’échantillonnage non biaisée pour le groupe. Les valeurs NULL sont ignorées.

La fonction VAR_SAMP(<expr>) est équivalente à

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

Si la sélection d’enregistrements est vide, ne contient qu’un seul enregistrement ou ne contient que des valeurs NULL, le résultat contiendra NULL.

Exemples VAR_SAMP

Example 1. En utilisant la fonction VAR_SAMP
SELECT
  dept_no,
  VAR_SAMP(salary)
FROM employee
GROUP BY dept_no

Fonctions de régression linéaire

Les fonctions de régression linéaire sont utiles pour poursuivre une ligne de tendance. Une ligne de tendance est généralement un modèle qui est suivi par un ensemble de valeurs. Une ligne de tendance est utile pour prédire les valeurs futures, ce qui signifie que la tendance se poursuivra dans le futur. Pour poursuivre une ligne de tendance, la pente et le point d’intersection avec l’axe Y doivent être connus. L’ensemble des fonctions linéaires comprend des fonctions permettant de calculer ces valeurs.

Dans la syntaxe de la fonction, u est interprété comme une variable dépendant de x.

REGR_AVGX()

Disponible en

DSQL

Syntaxe
REGR_AVGX ( <y>, <x> )
Table 1. paramètres de fonction REGR_AVGX
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

DOUBLE PRECISION

La fonction REGR_AVGX calcule la moyenne de la ligne de régression de la variable indépendante.

La fonction REGR_AVGX(<y>, <x>) est équivalente à

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

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

REGR_AVGY()

Disponible en

DSQL

Syntaxe
REGR_AVGY(<y>, <x>)
Table 1. paramètres de fonction REGR_AVGY
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

DOUBLE PRECISION

La fonction REGR_AVGY calcule la moyenne de la variable dépendante de la ligne de régression.

La fonction REGR_AVGY(<y>, <x>) est équivalente à

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

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

REGR_COUNT()

Disponible en

DSQL

Syntaxe
REGR_COUNT(<y>, <x>)
Table 1. paramètres de fonction REGR_COUNT
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

BIGINT

La fonction REGR_COUNT renvoie le nombre de paires non vides utilisées pour créer la ligne de régression.

La fonction REGR_COUNT(<y>, <x>) est équivalente à

SUM(CASE WHEN <x> IS NOT NULL AND <y> IS NOT NULL THEN 1 END)

REGR_INTERCEPT()

Disponible en

DSQL

Syntaxe
REGR_INTERCEPT(<y>, <x>)
Table 1. paramètres de fonction REGR_INTERCEPT
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable indépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées en tant qu’expression ne sont pas autorisées.

type de résultat de retour

DOUBLE PRECISION

La fonction REGR_INTERCEPT calcule le point d’intersection de la ligne de régression avec l’axe des ordonnées.

La fonction REGR_INTERCEPT(<y>, <x>) est équivalente à

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

Exemples REGR_INTERCEPT

Example 1. Prévision des volumes de vente
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()

Disponible en

DSQL

Syntaxe
REGR_R2(<y>, <x>)
Table 1. paramètres de fonction REGR_R2
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

DOUBLE PRECISION

La fonction REGR_R2 calcule le coefficient de détermination, ou R-carré, de la ligne de régression.

La fonction REGR_R2(<y>, <x>) est équivalente à

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

REGR_SLOPE()

Disponible en

DSQL

Syntaxe
REGR_SLOPE(<y>, <x>)
Table 1. paramètres de fonction REGR_SLOPE
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

DOUBLE PRECISION

La fonction REGR_SLOPE calcule la pente de la ligne de régression.

La fonction REGR_SLOPE(<y>, <x>) est équivalente à

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

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

REGR_SXX()

Disponible en

DSQL

Syntaxe
REGR_SXX(<y>, <x>)
Table 1. paramètres de fonction REGR_SXX
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

DOUBLE PRECISION

Statistique de diagnostic utilisée pour l’analyse de régression.

La fonction REGR_SXX(<y>, <x>) est calculée comme suit :

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

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

REGR_SXY()

Disponible en

DSQL

Syntaxe
REGR_SXY(<y>, <x>)
Table 1. paramètres de fonction REGR_SXY
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

DOUBLE PRECISION

Statistique de diagnostic utilisée pour l’analyse de régression.

La fonction REGR_SXY(<y>, <x>) est calculée comme suit :

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

REGR_SYY()

Disponible en

DSQL

Syntaxe
REGR_SYY(<y>, <x>)
Table 1. paramètres de fonction REGR_SYY
Paramètre Description

y

Variable dépendante de la ligne de régression. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

x

Une variable de ligne de régression indépendante. Peut contenir une colonne de table, une constante, une variable, une expression, une fonction non agrégée ou une UDR qui renvoie un type de données numériques. Les fonctions agrégées ne sont pas autorisées comme expression.

type de résultat de retour

DOUBLE PRECISION

La statistique de diagnostic utilisée pour l’analyse de régression.

La fonction REGR_SYY(<y>, <x>) est calculée comme suit :

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

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