Catégories :

Fonctions d’agrégation (Général) , Fonctions de la fenêtre (Général, Cadre de fenêtre)

VAR_SAMP

Renvoie la variance d’échantillon des enregistrements non NULL dans un groupe. Si tous les enregistrements d’un groupe sont NULL, un NULL est renvoyé.

Alias :

VARIANCE , VARIANCE_SAMP

Syntaxe

Fonction d’agrégation

VAR_SAMP( [DISTINCT] <expr1> )

Fonction de fenêtre

VAR_SAMP( <expr1> ) OVER (
                         [ PARTITION BY <expr2> ]
                         [ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
                         )

Pour plus d’informations sur la syntaxe cadre_fenêtre , voir Syntaxe et utilisation du cadre de fenêtre .

Arguments

expr1

expr1 doit correspondre à l’un des types de données numériques.

expr2

C’est l’expression à partir de laquelle effectuer la partition.

expr3

C’est l’expression à partir de laquelle effectuer le classement dans chaque partition.

Renvoie

Le type de données de la valeur renvoyée est NUMBER(<precision>, <scale>). L’échelle dépend des valeurs en cours de traitement.

Notes sur l’utilisation

  • Pour les entrées à enregistrement unique, VAR_SAMP, VARIANCE et VARIANCE_SAMP renvoient tous NULL. Cela est différent du comportement Oracle, où VAR_SAMP renvoie NULL pour un seul enregistrement et VARIANCE renvoie 0.

  • Lorsqu’elle est transmise à une expression VARCHAR, cette fonction convertit implicitement l’entrée en valeurs à virgule flottante. Si la conversion ne peut pas être effectuée, une erreur est renvoyée.

  • Lorsqu’elle est appelée en tant que fonction de fenêtre :

    • Le mot clé DISTINCT est autorisé syntaxiquement, mais est ignoré.

    • Si une sous-clause ORDER BY est utilisée à l’intérieur de la clause OVER, un cadre de fenêtre doit être utilisé. Si aucun cadre de fenêtre n’est spécifié, ORDER BY implique un cadre de fenêtre cumulatif :

      RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

      Pour plus d’informations sur les cadres de fenêtre, y compris la syntaxe et des exemples, voir Syntaxe et utilisation du cadre de fenêtre.

      Pour plus d’informations sur les cadres de fenêtre implicites, voir Notes sur l’utilisation du cadre de fenêtre.

Exemples

Cet exemple montre comment utiliser la fonction VAR_SAMP :

Créez et remplissez une table :

create table aggr(k int, v decimal(10,2), v2 decimal(10, 2));
insert into aggr values 
   (1, 10, null),
   (2, 10, 11), 
   (2, 20, 22), 
   (2, 25, null), 
   (2, 30, 35);

Interrogez la table en appelant VAR_SAMP() :

SELECT k, var_samp(v), var_samp(v2) 
    FROM aggr 
    GROUP BY k;
+---+---------------+----------------+
| K |   VAR_SAMP(V) |   VAR_SAMP(V2) |
|---+---------------+----------------|
| 1 |          NULL |           NULL |
| 2 | 72.9166666667 | 144.3333333333 |
+---+---------------+----------------+