カテゴリ:

集計関数 (General) , ウィンドウ関数の構文と使用法

KURTOSIS

NULL 以外の記録のサンプルの過剰尖度を返します。グループ内のすべてのレコードが NULLの場合、関数は NULLを返します。

サンプルの過剰尖度の計算には、次の式が使用されます。

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

条件:

  • \(n\) は、NULL 以外のレコードの数を示します。

  • \(m_4\) は、サンプルの4番目の中心モーメントを示します。

  • \(k_2\) は、分散の対称不偏推定量を示します。

構文

集計関数

KURTOSIS( <expr> )
Copy

ウィンドウ関数

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

引数

expr

数値データ型(INTEGER、 FLOAT、 DECIMALなど)に評価される式。

expr2

個々のグループまたはウィンドウを定義する式。

戻り値

入力データ型が DOUBLE/FLOATの場合、 DOUBLE を返します。

入力データ型が別の数値データ型の場合、 DECIMAL を返します。

使用上の注意

  • レコードが4つ未満の入力の場合、 KURTOSIS は NULL を返します。

  • この関数がウィンドウ関数として呼び出される場合、以下はサポートされていません。

    • OVER 句内の ORDER BY 句。

    • 明示的なウィンドウフレーム。

テーブルを作成し、いくつかの行を挿入します。

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

テーブルからすべてのデータを選択します。

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 |
+---+-------+-------+

各列の KURTOSIS 値を返します。

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