Catégories :

Fonctions d’agrégation (Général) , Syntaxe et utilisation des fonctions de fenêtre (Général)

VAR_POP

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

Alias :

VARIANCE_POP

Syntaxe

Fonction d’agrégation

VAR_POP( [ DISTINCT ] <expr1> )
Copy

Fonction de fenêtre

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

Pour plus de détails sur la syntaxe window_frame, voir Syntaxe et utilisation des fonctions de fenêtre.

Arguments

expr1

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

expr2

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

expr3

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

Renvoie

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

Notes sur l’utilisation

  • 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.

  • Lorsque cette fonction est appelée en tant que fonction de fenêtre avec une clause OVER qui contient une clause ORDER BY :

    • Un cadre de fenêtre est nécessaire. Si aucun cadre de fenêtre n’est spécifié explicitement, le cadre de fenêtre implicite suivant est utilisé :

      RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

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

    • L’utilisation du mot-clé DISTINCT à l’intérieur de la fonction de fenêtre est interdite et entraîne une erreur de compilation.

Exemples

Cet exemple montre comment utiliser la fonction VAR_POP :

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);
Copy

Interrogez la table :

SELECT k, var_pop(v), var_pop(v2) 
    FROM aggr 
    GROUP BY k
    ORDER BY k;
+---+---------------+---------------+
| K |    VAR_POP(V) |   VAR_POP(V2) |
|---+---------------+---------------|
| 1 |  0.0000000000 |          NULL |
| 2 | 54.6875000000 | 96.2222222222 |
+---+---------------+---------------+
Copy