- カテゴリ:
集計関数 (一般)
SKEW¶
NULL 以外のレコードのサンプルの歪度を返します。グループ内のすべてのレコードが NULLの場合、関数は NULLを返します。
サンプルの歪度を計算するには、次の式を使用します。
\[(n^2)/((n-1) * (n-2)) * (m_3/(k_2)^(1.5))\]
条件:
\(n\) は、NULL以外のレコードの数を示します。
\(m_3\) は、サンプルの3番目の中心モーメントを示します。
\(k_2\) は、分散の対称不偏推定量を示します。
スキューは、基礎となる分布がどれほど非対称であるかを直観的に表します。
構文¶
SKEW( <expr> )
引数¶
expr
これは、数値データ型(INTEGER、 FLOAT、 DECIMALなど)に評価される式です。
戻り値¶
この関数は DOUBLE型の値を返します。
使用上の注意¶
レコードが3つ未満の入力の場合、 SKEW は NULLを返します。
例¶
テーブルを作成し、データをロードします。
create or replace table aggr(k int, v decimal(10,2), v2 decimal(10, 2)); insert into aggr values (1, 10, null), (2, 10, null), (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 | NULL | | 2 | 20.00 | 22.00 | | 2 | 25.00 | NULL | | 2 | 30.00 | 35.00 | +---+-------+-------+
データをクエリします。
select SKEW(K), SKEW(V), SKEW(V2) from aggr; +--------------+---------------+----------+ | SKEW(K) | SKEW(V) | SKEW(V2) | |--------------+---------------+----------| | -2.236069766 | 0.05240788515 | NULL | +--------------+---------------+----------+