- Catégories :
Fonctions d’agrégation (Général) , Syntaxe et utilisation des fonctions de fenêtre (Général)
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 :
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 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 à 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(<précision>, <échelle>)
. 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.
Lorsque cette fonction est appelée en tant que fonction de fenêtre :
La syntaxe autorise le mot-clé DISTINCT, mais il est ignoré.
Si vous ne spécifiez pas de cadre de fenêtre, 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.
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 :
SELECT k, var_samp(v), var_samp(v2) FROM aggr GROUP BY k ORDER BY k; +---+---------------+----------------+ | K | VAR_SAMP(V) | VAR_SAMP(V2) | |---+---------------+----------------| | 1 | NULL | NULL | | 2 | 72.9166666667 | 144.3333333333 | +---+---------------+----------------+