カテゴリ:

集計関数 (一般)、 ウィンドウ関数

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> ] )

引数

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

式2

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

戻り値

入力データ型が 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 |
+---+-------+-------+

データをクエリします。

select KURTOSIS(K), KURTOSIS(V), KURTOSIS(V2) 
    from aggr;
+----------------+-----------------+--------------+
|    KURTOSIS(K) |     KURTOSIS(V) | KURTOSIS(V2) |
|----------------+-----------------+--------------|
| 5.000000000000 | -2.324218750000 |         NULL |
+----------------+-----------------+--------------+