VAR_POP

VAR_POP (모집단 분산)

그룹 안의 NULL이 아닌 레코드들의 모집단 분산(population variance)을 반환해요. 그룹 안의 모든 레코드가 NULL이면 NULL을 반환해요.

별칭: VARIANCE_POP

출처: Snowflake SQL Reference - VAR_POP

본문

구문

집계 함수

VAR_POP( [ DISTINCT ] <expr1> )

윈도우 함수

VAR_POP( [ DISTINCT ] <expr1> ) OVER (
    [ PARTITION BY <expr2> ]
    [ ORDER BY <expr3> [ { ASC | DESC } ] [ NULLS { FIRST | LAST } ] ]
    [ <window_frame> ]
)

window_frame의 자세한 구문은 Window function syntax and usage를 참고해요.

인자

expr1

expr1은 숫자 데이터 타입 중 하나로 평가되어야 해요.

expr2

파티션을 나눌 때 사용하는 선택적 표현식이에요.

expr3

각 파티션 안에서 정렬할 때 사용하는 선택적 표현식이에요.

반환 값

반환 값의 데이터 타입은 NUMBER(<precision>, <scale>)이에요. scale은 처리되는 값에 따라 달라져요.

사용상 주의사항

  • VARCHAR 표현식을 넘기면 이 함수는 입력을 암시적으로 부동 소수점 값으로 변환해요. 변환이 수행될 수 없으면 오류를 반환해요.
  • 이 함수가 ORDER BY 절을 포함한 OVER 절을 가진 윈도우 함수로 호출될 때: 윈도우 프레임이 필수예요. 명시적으로 윈도우 프레임을 지정하지 않으면 다음의 암시적 윈도우 프레임이 사용돼요: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. 윈도우 프레임에 대한 구문, 사용상 주의사항, 예시를 포함한 자세한 내용은 Window function syntax and usage를 참고해요. 이 경우 DISTINCT 키워드는 사용할 수 없어요.

예시

이 예시는 VAR_POP 함수를 사용하는 방법을 보여줘요.

테이블을 만들고 채우기:

CREATE TABLE aggr (k INT, v DECIMAL(10,2), v2 DECIMAL(10, 2));

INSERT INTO aggr VALUES
  (1, 10, NULL),
  (2, 10, 11),
  (2, 20, 22),
  (2, 25, NULL),
  (2, 30, 35);

테이블 조회:

SELECT k, VAR_POP(v), VAR_POP(v2)
  FROM aggr
  GROUP BY k
  ORDER BY k;
+---+---------------+---------------+
| K |    VAR_POP(V) |   VAR_POP(V2) |
|---+---------------+---------------|
| 1 |  0.0000000000 |          NULL |
| 2 | 54.6875000000 | 96.2222222222 |
+---+---------------+---------------+

더 알아보기