Catégories :

Fonctions d’agrégation (général)

SKEW

Renvoie l’exemple d’asymétrie des enregistrements autres que NULL. Si tous les enregistrements d’un groupe sont NULL, la fonction renvoie NULL.

La formule suivante est utilisée pour calculer l’asymétrie de l’échantillon :

\[(n^2)/((n-1) * (n-2)) * (m_3/(k_2)^(1.5))\]

où :

  • \(n\) indique le nombre d’enregistrements non nuls.

  • \(m_3\) désigne le troisième moment centré de l’échantillon.

  • \(k_2\) désigne l’estimateur non biaisé symétrique de la variance.

Intuitivement, l’asymétrie décrit à quel point la distribution sous-jacente est asymétrique.

Syntaxe

SKEW( <expr> )

Arguments

expr

L’expression est une expression qui correspond à un type de données numérique (INTEGER, FLOAT, DECIMAL, etc.).

Renvoie

La fonction renvoie une valeur de type DOUBLE.

Notes sur l’utilisation

  • Pour les entrées comportant moins de trois enregistrements, SKEW renvoie NULL.

Exemples

Créer une table et charger les données :

create or replace table aggr(k int, v decimal(10,2), v2 decimal(10, 2));

insert into aggr values
    (1, 10, null),
    (2, 10, null),
    (2, 20, 22),
    (2, 25, null),
    (2, 30, 35);

Afficher les données :

select * 
    from aggr
    order by k, v;
+---+-------+-------+
| K |     V |    V2 |
|---+-------+-------|
| 1 | 10.00 |  NULL |
| 2 | 10.00 |  NULL |
| 2 | 20.00 | 22.00 |
| 2 | 25.00 |  NULL |
| 2 | 30.00 | 35.00 |
+---+-------+-------+

Interroger les données :

select SKEW(K), SKEW(V), SKEW(V2) 
    from aggr;
+--------------+---------------+----------+
|      SKEW(K) |       SKEW(V) | SKEW(V2) |
|--------------+---------------+----------|
| -2.236069766 | 0.05240788515 |     NULL |
+--------------+---------------+----------+