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 | +---+-------+-------+
データをクエリします。
select KURTOSIS(K), KURTOSIS(V), KURTOSIS(V2) from aggr; +----------------+-----------------+--------------+ | KURTOSIS(K) | KURTOSIS(V) | KURTOSIS(V2) | |----------------+-----------------+--------------| | 5.000000000000 | -2.324218750000 | NULL | +----------------+-----------------+--------------+