KURTOSIS

KURTOSIS

NULL이 아닌 레코드의 표본 초과 첨도(sample excess kurtosis)를 반환해요. 그룹 안의 모든 레코드가 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차 중심 적률(sample fourth central moment)을 나타내요.
  • k_2는 분산의 대칭 불편 추정량(symmetric unbiased estimator)을 나타내요.

출처: Snowflake SQL Reference - KURTOSIS

본문

구문

집계 함수

KURTOSIS( <expr> )

윈도우 함수

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

인자

  • 숫자 데이터 타입(예: INTEGER, FLOAT, DECIMAL)으로 평가되는 표현식이에요.
  • 개별 그룹 또는 윈도우를 정의하는 표현식이에요.

반환 값

  • 입력 데이터 타입이 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 |
+----------------+-----------------+--------------+

더 알아보기