카테고리:

집계 함수 (일반)

SKEW

NULL이 아닌 레코드의 샘플 왜곡도를 반환합니다. 그룹 내의 모든 레코드가 NULL인 경우, 함수가 NULL을 반환합니다.

다음 공식은 샘플 왜곡도를 계산하는 데 사용됩니다.

\[(n^2)/((n-1) * (n-2)) * (m_3/(k_2)^(1.5))\]

여기서:

  • \(n\) 은 null이 아닌 레코드의 수를 나타냅니다.

  • \(m_3\) 는 샘플의 세 번째 중심 모멘트를 나타냅니다.

  • \(k_2\) 는 분산의 대칭적인, 편향되지 않은 추정량을 나타냅니다.

직관적으로, 왜곡은 기본 분포가 얼마나 비대칭적인지를 설명합니다.

구문

SKEW( <expr> )
Copy

인자

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);
Copy

데이터를 표시합니다.

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 |
+---+-------+-------+
Copy

데이터를 쿼리합니다.

select SKEW(K), SKEW(V), SKEW(V2) 
    from aggr;
+--------------+---------------+----------+
|      SKEW(K) |       SKEW(V) | SKEW(V2) |
|--------------+---------------+----------|
| -2.236069766 | 0.05240788515 |     NULL |
+--------------+---------------+----------+
Copy