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 | ...