- 카테고리:
집계 함수 (일반) , 윈도우 함수 구문 및 사용법 (일반)
VAR_SAMP¶
그룹에 있는 NULL 이외의 레코드의 표본 분산을 반환합니다. 그룹 내의 모든 레코드가 NULL인 경우, NULL이 반환됩니다.
구문¶
집계 함수
VAR_SAMP( [DISTINCT] <expr1> )
윈도우 함수
VAR_SAMP( <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
자세한 window_frame
구문은 윈도우 함수 구문 및 사용법 섹션을 참조하십시오.
인자¶
expr1
expr1
은 숫자 데이터 타입 중 하나로 평가되어야 합니다.expr2
분할하는 식입니다.
expr3
각 파티션 내에서 순서를 지정하는 식입니다.
반환¶
반환된 값의 데이터 타입은 NUMBER(<정밀도>, <스케일>)
입니다. 스케일은 처리되는 값에 따라 다릅니다.
사용법 노트¶
단일 레코드 입력의 경우, VAR_SAMP, VARIANCE, VARIANCE_SAMP 모두 NULL을 반환합니다. 이는 VAR_SAMP가 단일 레코드에 대해 NULL을 반환하고 VARIANCE가 0을 반환하는 Oracle 동작과는 다릅니다.
VARCHAR 식이 전달되면 이 함수는 암시적으로 입력을 부동 소수점 값으로 캐스팅합니다. 캐스팅을 수행할 수 없으면 오류가 반환됩니다.
이 함수가 윈도우 함수로 호출될 때:
구문에 DISTINCT 키워드를 사용할 수 있지만 이는 무시됩니다.
윈도우 프레임을 지정하지 않으면 다음 암시적 윈도우 프레임이 사용됩니다.
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
구문, 사용법 노트, 예를 포함하여 윈도우 프레임에 대한 자세한 내용은 윈도우 함수 구문 및 사용법 섹션을 참조하십시오.
예¶
이 예는 VAR_SAMP 함수를 사용하는 방법을 보여줍니다.
테이블을 만들고 채웁니다.
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_samp(v), var_samp(v2) FROM aggr GROUP BY k ORDER BY k; +---+---------------+----------------+ | K | VAR_SAMP(V) | VAR_SAMP(V2) | |---+---------------+----------------| | 1 | NULL | NULL | | 2 | 72.9166666667 | 144.3333333333 | +---+---------------+----------------+