Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

STDDEV 함수, STDDEV_POP 함수

설명

STDDEV 함수와 STDDEV_POP 함수는 동일하며, 모든 행에 대한 연산식 값들에 대한 표준편차, 즉 모표준편차를 반환한다. STDDEV_POP 함수가 SQL:1999 표준이다. 하나의 연산식 expression만 인자로 지정되며, 연산식 앞에 DISTINCT 또는 UNIQUE 키워드를 포함시키면 연산식 값 중 중복을 제거한 후, 표본 표준편차를 구하고, 키워드가 생략되거나 ALL인 경우에는 모든 값에 대해 표본 표준편차를 구한다.

리턴 값은 VAR_POP 함수 리턴 값의 제곱근과 같으며 DOUBLE 타입이다. 결과 계산에 사용할 행이 없으면 NULL을 반환한다.

다음은 함수에 적용된 공식이다.

STDDEV_POP = [ (1/N) * SUM( { xI - AVG(x) }2 ) ]1/2

  • SUM : 합계
  • AVG : 평균

분석 함수에 대한 예제는 아래의 분석 함수 예제를 참고한다. 분석 함수에 대한 자세한 내용은 개요를 참고한다.

주의 CUBRID 2008 R3.1 이하 버전에서 STDDEV 함수는 STDDEV_SAMP 함수와 같은 기능을 수행했다.

구문

STDDEV_POP( [ { DISTINCT | DISTINCTROW } | UNIQUE | ALL] expression )

  • expression : 수치를 반환하는 하나의 연산식을 지정한다.
  • ALL : 모든 값에 대해 표준 편차를 구하기 위해 사용되며, 기본값이다.
  • DISTINCT 또는 UNIQUE : 중복이 제거된 유일한 값에 대해서만 표준 편차를 구하기 위해 사용된다.
집계 함수 예제

다음은 전체 과목에 대해 전체 학생의 모 표준 편차를 출력하는 예제이다.

CREATE TABLE student (name VARCHAR(32), subjects_id INT, score DOUBLE);

INSERT INTO student VALUES

('Jane',1, 78),

('Jane',2, 50),

('Jane',3, 60),

('Bruce', 1, 63),

('Bruce', 2, 50),

('Bruce', 3, 80),

('Lee', 1, 85),

('Lee', 2, 88),

('Lee', 3, 93),

('Wane', 1, 32),

('Wane', 2, 42),

('Wane', 3, 99),

('Sara', 1, 17),

('Sara', 2, 55),

('Sara', 3, 43);

 

SELECT STDDEV_POP(score) FROM student;

 

         stddev_pop(score)

==========================

     2.329711474744362e+01

분석 함수 예제

다음은 각 과목(subjects_id)별로 전체 학생의 점수와 모 표준편차를 함께 출력하는 예제이다.

SELECT subjects_id, name, score, STDDEV_POP(score) OVER(PARTITION BY subjects_id) std_pop FROM student ORDER BY subjects_id, name;

 

  subjects_id  name                                     score                   std_pop

=======================================================================================

            1  'Bruce'                  6.300000000000000e+01     2.632869157402243e+01

            1  'Jane'                   7.800000000000000e+01     2.632869157402243e+01

            1  'Lee'                    8.500000000000000e+01     2.632869157402243e+01

            1  'Sara'                   1.700000000000000e+01     2.632869157402243e+01

            1  'Wane'                   3.200000000000000e+01     2.632869157402243e+01

            2  'Bruce'                  5.000000000000000e+01     1.604992211819110e+01

            2  'Jane'                   5.000000000000000e+01     1.604992211819110e+01

            2  'Lee'                    8.800000000000000e+01     1.604992211819110e+01

            2  'Sara'                   5.500000000000000e+01     1.604992211819110e+01

            2  'Wane'                   4.200000000000000e+01     1.604992211819110e+01

            3  'Bruce'                  8.000000000000000e+01     2.085185843036539e+01

            3  'Jane'                   6.000000000000000e+01     2.085185843036539e+01

            3  'Lee'                    9.300000000000000e+01     2.085185843036539e+01

            3  'Sara'                   4.300000000000000e+01     2.085185843036539e+01

            3  'Wane'                   9.900000000000000e+01     2.085185843036539e+01