- カテゴリ:
集計関数 (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> )
ウィンドウ関数
KURTOSIS( <expr> ) OVER ( [ PARTITION BY <expr2> ] )
引数¶
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);
テーブルからすべてのデータを選択します。
SELECT * FROM aggr
ORDER BY k, v;
+---+-------+-------+
| 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;
+----------------+-----------------+--------------+
| KURTOSIS(K) | KURTOSIS(V) | KURTOSIS(V2) |
|----------------+-----------------+--------------|
| 5.000000000000 | -2.324218750000 | NULL |
+----------------+-----------------+--------------+