STDDEV, STDDEV_SAMP¶
NULL이 아닌 값의 표본 표준 편차(표본 분산의 제곱근)를 반환합니다. STDDEV 및 STDDEV_SAMP는 동일한 함수의 별칭입니다.
모집단 표준 편차(분산의 제곱근)를 반환하는 STDDEV_POP 도 참조하십시오.
구문¶
집계 함수
{ STDDEV | STDDEV_SAMP } ( [ DISTINCT ] <expr1> )
윈도우 함수
{ STDDEV | STDDEV_SAMP } ( [ DISTINCT ] <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
window_frame
구문에 대한 자세한 내용은 윈도우 프레임 구문과 사용법 을 참조하십시오.
인자¶
expr1
숫자 값으로 평가되는 식입니다. 이는 표준 편차를 계산하는 식입니다.
expr2
분할하는 선택적 식입니다.
expr3
각 파티션 내에서 순서를 지정하는 선택적 식입니다.
반환¶
반환된 값의 데이터 타입은 DOUBLE 입니다.
그룹 내 모든 레코드가 NULL인 경우 이 함수가 NULL을 반환합니다.
사용법 노트¶
단일 레코드 입력의 경우, STDDEV 및 STDDEV_SAMP 둘 다 NULL을 반환합니다. 이는 STDDEV_SAMP가 단일 레코드에 대해 NULL을 반환하고 STDDEV가 0을 반환하는 Oracle 동작과는 다릅니다.
VARCHAR 식이 전달되면 이 함수는 암시적으로 입력을 부동 소수점 값으로 캐스팅합니다. 캐스팅을 수행할 수 없으면 오류가 반환됩니다.
이 함수가 윈도우 함수로 호출되고 OVER 절에 ORDER BY 절이 포함된 경우:
DISTINCT 키워드는 금지되어 있으며 SQL 컴파일 오류가 발생합니다.
윈도우 프레임을 지정해야 합니다. 윈도우 프레임을 지정하지 않으면 암시적인 누적 윈도우 프레임이 사용됩니다.
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
구문 및 예를 비롯하여 윈도우 프레임에 대한 자세한 내용은 윈도우 프레임 구문과 사용법 을 참조하십시오.
암시적 윈도우 프레임에 대한 자세한 내용은 윈도우 프레임 사용법 노트 를 참조하십시오.
집계 함수 예¶
다음 예에서는 작은 정수 표본의 표준 편차를 계산합니다.
CREATE TABLE t1 (c1 INTEGER); INSERT INTO t1 (c1) VALUES (6), (10), (14) ; SELECT STDDEV(c1) FROM t1;+----------+ | STDDEV() | |----------| | 4 | +----------+
함수 STDDEV_SAMP는 동일한 결과를 반환합니다.
SELECT STDDEV_SAMP(c1) FROM t1;+-----------------+ | STDDEV_SAMP(C1) | |-----------------| | 4 | +-----------------+
다음 예에서는 푸드 트럭에서 판매할 품목을 나열하는 menu_items
라는 작은 테이블을 사용합니다. 이 테이블을 생성하고 로드하려면 menu_items 테이블 생성 및 로드하기 섹션을 참조하십시오.
매출 원가(COGS)와 Dessert
행의 판매 가격 모두의 표본 표준 편차를 찾으려면 다음 쿼리를 실행하십시오.
SELECT menu_category, STDDEV(menu_cogs_usd) stddev_cogs, STDDEV(menu_price_usd) stddev_price FROM menu_items WHERE menu_category='Dessert' GROUP BY 1;+---------------+-------------+--------------+ | MENU_CATEGORY | STDDEV_COGS | STDDEV_PRICE | |---------------+-------------+--------------| | Dessert | 1.00519484 | 1.471960144 | +---------------+-------------+--------------+
윈도우 함수의 예¶
다음 예에서는 menu_items
테이블(menu_items 테이블 생성 및 로드하기 참조)도 사용하지만 STDDEV 함수를 윈도우 함수로 호출합니다.
윈도우 함수는 menu_category
열을 기준으로 행을 분할합니다. 따라서 표준 편차는 각 카테고리에 대해 한 번 계산되고 해당 값은 그룹의 각 행에 대한 결과에서 반복됩니다. 이 예에서 행은 메뉴 카테고리와 매출 원가를 모두 기준으로 그룹화해야 합니다.
SELECT menu_category, menu_cogs_usd, STDDEV(menu_cogs_usd) OVER(PARTITION BY menu_category) stddev_cogs FROM menu_items GROUP BY 1,2 ORDER BY menu_category;
다음 출력은 이 쿼리에 대한 부분 결과 세트입니다(첫 번째 15행).
+---------------+---------------+--------------+ | MENU_CATEGORY | MENU_COGS_USD | STDDEV_COGS | |---------------+---------------+--------------| | Beverage | 0.50 | 0.1258305738 | | Beverage | 0.65 | 0.1258305738 | | Beverage | 0.75 | 0.1258305738 | | Dessert | 1.25 | 1.054751155 | | Dessert | 3.00 | 1.054751155 | | Dessert | 1.00 | 1.054751155 | | Dessert | 2.50 | 1.054751155 | | Dessert | 0.50 | 1.054751155 | | Main | 4.50 | 3.444051572 | | Main | 2.40 | 3.444051572 | | Main | 1.50 | 3.444051572 | | Main | 11.00 | 3.444051572 | | Main | 8.00 | 3.444051572 | | Main | NULL | 3.444051572 | | Main | 12.00 | 3.444051572 | ...