Catégories :

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

KURTOSIS

Renvoie le kurtosis de l’échantillon des enregistrements non NULL. Si tous les enregistrements d’un groupe sont NULL, la fonction renvoie NULL.

La formule suivante est utilisée pour calculer le kurtosis de l’échantillon :

\[(n * (n+1))/((n-1) * (n-2) *(n-3)) * (n * m_4/(k_2)^2) - 3 * (n-1)^2 / ((n-2) * (n-3))\]

où :

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

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

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

Syntaxe

Fonction d’agrégation

KURTOSIS( <expr> )
Copy

Fonction de fenêtre

KURTOSIS( <expr> ) OVER ( [ PARTITION BY <expr2> ] )
Copy

Arguments

expr

Une expression qui correspond à un type de données numérique (tel que INTEGER, FLOAT, DECIMAL).

expr2

Une expression qui définit les groupes individuels ou les fenêtres.

Renvoie

Renvoie DOUBLE si le type de données en entrée est DOUBLE/FLOAT.

Renvoie DECIMAL si le type de données en entrée est un autre type de données numérique.

Notes sur l’utilisation

  • KURTOSIS renvoie NULL pour les entrées comportant moins de quatre enregistrements.

  • Lorsque cette fonction est appelée en tant que fonction de fenêtre, elle ne prend pas en charge :

    • Une clause ORDER BY dans la clause OVER.

    • Cadres de fenêtre explicites.

Exemples

Créer une table et insérer des lignes :

CREATE OR REPLACE TABLE aggr(k INT, v DECIMAL(10,2), v2 DECIMAL(10, 2));

INSERT INTO aggr VALUES
  (1, 10, null),
  (2, 10, 12),
  (2, 20, 22),
  (2, 25, null),
  (2, 30, 35);
Copy

Sélectionner toutes les données de la table :

SELECT * FROM aggr
  ORDER BY k, v;
Copy
+---+-------+-------+
| K |     V |    V2 |
|---+-------+-------|
| 1 | 10.00 |  NULL |
| 2 | 10.00 | 12.00 |
| 2 | 20.00 | 22.00 |
| 2 | 25.00 |  NULL |
| 2 | 30.00 | 35.00 |
+---+-------+-------+

Renvoyer la valeur KURTOSIS pour chaque colonne :

SELECT KURTOSIS(k), KURTOSIS(v), KURTOSIS(v2)
  FROM aggr;
Copy
+----------------+-----------------+--------------+
|    KURTOSIS(K) |     KURTOSIS(V) | KURTOSIS(V2) |
|----------------+-----------------+--------------|
| 5.000000000000 | -2.324218750000 |         NULL |
+----------------+-----------------+--------------+