- 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 :
Syntaxe¶
Fonction d’agrégation
VAR_POP( [ DISTINCT ] <expr1> )
Fonction de fenêtre
VAR_POP( [ DISTINCT ] <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
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);
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 | +---+---------------+---------------+