Catégories :

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

STDDEV_SAMP

Renvoie l’écart-type de l’échantillon standard (racine carrée de la variance de l’échantillon) des valeurs non NULL. Si tous les enregistrements d’un groupe sont NULL, renvoie NULL.

Alias :

STDDEV

Syntaxe

Fonction d’agrégation

STDDEV_SAMP( [ DISTINCT ] <expr1> )
Copy

Fonction de fenêtre

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

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

Arguments

expr1

Une expression qui est évaluée à une valeur numérique (entier, virgule flottante, virgule fixe).

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

Notes sur l’utilisation

  • Pour les entrées à enregistrement unique, STDDEV_SAMP et STDDEV renvoient tous deux NULL. Cela est différent du comportement Oracle, où STDDEV_SAMP renvoie NULL pour un seul enregistrement et STDDEV 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

create or replace table aggr(k int, v decimal(10,2), v2 decimal(10, 2));
insert into aggr values(1, 10, null);
insert into aggr values(2, 10, 11), (2, 20, 22), (2, 25,null), (2, 30, 35);
Copy
select k, stddev_samp(v), stddev_samp(v2) from aggr group by k;

---+----------------+-----------------+
 k | stddev_samp(v) | stddev_samp(v2) |
---+----------------+-----------------+
 1 | [NULL]         | [NULL]          |
 2 | 8.539125634    | 12.013880859    |
---+----------------+-----------------+
Copy