카테고리:

집계 함수 (일반) , 윈도우 함수 (일반, 윈도우 프레임)

STDDEV_SAMP

NULL이 아닌 값의 표본 표준 편차(표본 분산의 제곱근)를 반환합니다. 그룹 내의 모든 레코드가 NULL인 경우, NULL을 반환합니다.

별칭:

STDDEV

구문

집계 함수

STDDEV_SAMP( [ DISTINCT ] <expr1> )
Copy

윈도우 함수

STDDEV_SAMP( [ DISTINCT ] <expr1> ) OVER (
                                         [ PARTITION BY <expr2> ]
                                         [ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
                                         )
Copy

window_frame 구문에 대한 자세한 내용은 윈도우 프레임 구문과 사용법 을 참조하십시오.

인자

expr1

숫자 값(정수, 부동 소수점 또는 고정 소수점)으로 평가되는 식입니다.

expr2

분할하는 식입니다.

expr3

각 파티션 내에서 순서를 지정하는 식입니다.

반환

반환된 값의 데이터 타입은 DOUBLE 입니다.

사용법 노트

  • 단일 레코드 입력의 경우, STDDEV_SAMP 및 STDDEV 둘 다 NULL을 반환합니다. 이는 STDDEV_SAMP가 단일 레코드에 대해 NULL을 반환하고 STDDEV가 0을 반환하는 Oracle 동작과는 다릅니다.

  • VARCHAR 식이 전달되면 이 함수는 암시적으로 입력을 부동 소수점 값으로 캐스팅합니다. 캐스팅을 수행할 수 없으면 오류가 반환됩니다.

  • 윈도우 함수로 호출되는 경우:

    • DISTINCT 키워드는 구문상 허용되지만, 무시됩니다.

    • OVER 절 내에서 ORDER BY 하위 절을 사용하는 경우, 윈도우 프레임을 사용해야 합니다. 윈도우 프레임이 지정되지 않은 경우, ORDER BY는 누적 윈도우 프레임을 의미합니다.

      RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

      구문 및 예를 비롯하여 윈도우 프레임에 대한 자세한 내용은 윈도우 프레임 구문과 사용법 을 참조하십시오.

      암시적 윈도우 프레임에 대한 자세한 내용은 윈도우 프레임 사용법 노트 를 참조하십시오.

create or replace table aggr(k int, v decimal(10,2), v2 decimal(10, 2));
insert into aggr values(1, 10, null);
insert into aggr values(2, 10, 11), (2, 20, 22), (2, 25,null), (2, 30, 35);
Copy
select k, stddev_samp(v), stddev_samp(v2) from aggr group by k;

---+----------------+-----------------+
 k | stddev_samp(v) | stddev_samp(v2) |
---+----------------+-----------------+
 1 | [NULL]         | [NULL]          |
 2 | 8.539125634    | 12.013880859    |
---+----------------+-----------------+
Copy