- 카테고리:
집계 함수 (일반) , 윈도우 함수 구문 및 사용법 (일반)
STDDEV_POP¶
NULL이 아닌 값의 모집단 표준 편차(분산의 제곱근)를 반환합니다.
표본 표준 편차(분산의 제곱근)를 반환하는 STDDEV 도 참조하십시오.
구문¶
집계 함수
STDDEV_POP( [ DISTINCT ] <expr1>)
윈도우 함수
STDDEV_POP( [ DISTINCT ] <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
자세한 window_frame
구문은 윈도우 함수 구문 및 사용법 섹션을 참조하십시오.
인자¶
expr1
숫자 값으로 평가되는 식입니다. 이는 표준 편차를 계산하는 식입니다.
expr2
분할하는 선택적 식입니다.
expr3
각 파티션 내에서 순서를 지정하는 선택적 식입니다.
반환¶
반환된 값의 데이터 타입은 DOUBLE 입니다.
그룹 내 모든 레코드가 NULL인 경우 이 함수가 NULL을 반환합니다.
사용법 노트¶
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_POP(c1) FROM t1;+----------------+ | STDDEV_POP(C1) | |----------------| | 3.265986375 | +----------------+
STDDEV 및 STDDEV_SAMP 함수는 STDDEV_POP와 동일한 결과를 반환하지 않습니다.
다음 예에서는 카페에서 판매할 음식 품목을 나열하는 menu
라는 테이블이 있다고 가정합니다. 다음 출력은 Dessert
카테고리에 속한 테이블의 6개 행을 보여줍니다. Main
, Beverage
등 다른 카테고리에 대한 다른 행도 존재합니다.
+---------+--------------------+---------------+-------------------+----------------+ | MENU_ID | MENU_ITEM_NAME | ITEM_CATEGORY | COST_OF_GOODS_USD | SALE_PRICE_USD | |---------+--------------------+---------------+-------------------+----------------| | 10002 | Sugar Cone | Dessert | 2.5000 | 6.0000 | | 10003 | Waffle Cone | Dessert | 2.5000 | 6.0000 | | 10004 | Two Scoop Bowl | Dessert | 3.0000 | 7.0000 | | 10008 | Ice Cream Sandwich | Dessert | 1.0000 | 4.0000 | | 10009 | Mango Sticky Rice | Dessert | 1.2500 | 5.0000 | | 10010 | Popsicle | Dessert | 0.5000 | 3.0000 | +---------+--------------------+---------------+-------------------+----------------+
매출 원가 및 판매 가격(Dessert
행에만 해당)에 대한 모집단 표준 편차를 찾으려면 다음 쿼리를 실행하십시오.
SELECT item_category, STDDEV_POP(cost_of_goods_usd) stddev_cogs, STDDEV_POP(sale_price_usd) stddev_price FROM menu WHERE item_category='Dessert' GROUP BY 1;+---------------+--------------+--------------+ | ITEM_CATEGORY | STDDEV_COGS | STDDEV_PRICE | |---------------+--------------+--------------| | Dessert | 0.9176131477 | 1.343709625 | +---------------+--------------+--------------+
윈도우 함수의 예¶
다음 예에서는 동일한 menu
테이블을 사용하지만 STDDEV_POP 함수를 윈도우 함수로 실행합니다.
윈도우 함수는 item_category
열을 기준으로 행을 분할합니다. 따라서 표준 편차는 각 항목 카테고리에 대해 한 번 계산되고 해당 값은 그룹의 각 행에 대한 결과에서 반복됩니다. 이 예에서 행은 품목 카테고리와 매출 원가를 모두 기준으로 그룹화해야 합니다. (두 행의 상품 가격 값이 동일하므로 6개 Dessert
행은 이제 5개 행으로 그룹화됩니다.)
SELECT item_category, cost_of_goods_usd, STDDEV_POP(cost_of_goods_usd) OVER(PARTITION BY item_category) stddev_cogs FROM menu GROUP BY 1,2 ORDER BY item_category;+---------------+-------------------+--------------+ | ITEM_CATEGORY | COST_OF_GOODS_USD | STDDEV_COGS | |---------------+-------------------+--------------| | Beverage | 0.5000 | 0.1027402334 | | Beverage | 0.7500 | 0.1027402334 | | Beverage | 0.6500 | 0.1027402334 | | Dessert | 2.5000 | 0.9433981132 | | Dessert | 3.0000 | 0.9433981132 | | Dessert | 1.0000 | 0.9433981132 | | Dessert | 0.5000 | 0.9433981132 | | Dessert | 1.2500 | 0.9433981132 | | Main | 4.5000 | 3.352193642 | | Main | 8.0000 | 3.352193642 | | Main | 2.0000 | 3.352193642 | | Main | 3.5000 | 3.352193642 | ...