APPROX_PERCENTILE¶
원하는 백분위수의 근삿값을 반환합니다(즉, 열 c
에 n
개의 숫자가 있는 경우 APPROX_PERCENTILE(c, p)는 c
에 있는 숫자의 대략적인 n * p
가 반환된 숫자보다 작게 만드는 숫자를 반환합니다.
이 함수는 t-Digest 알고리즘의 개선된 버전을 사용합니다. 자세한 내용은 백분위수 값 추정하기 섹션을 참조하십시오.
구문¶
집계 함수
APPROX_PERCENTILE( <expr> , <percentile> )
윈도우 함수
APPROX_PERCENTILE( <expr> , <percentile> ) OVER ( [ PARTITION BY <expr3> ] )
인자¶
expr
숫자 값으로 평가되는 유효한 식(예: 열 이름)입니다.
percentile
0.0
보다 크거나 같고1.0
보다 작은 상수 실수 값입니다. 백분위수(0-99.999…)를 나타냅니다. 예: 값 0.65는 65번째 백분위수를 나타냅니다.expr3
행을 파티션으로 그룹화하는 데 사용되는 선택적 식입니다.
반환¶
출력은 DOUBLE 값으로 반환됩니다.
사용법 노트¶
백분위수는 숫자 값에서만 작동하므로
expr
은 숫자이거나 숫자로 캐스팅할 수 있는 값을 생성해야 합니다.반환된 값이 반드시 데이터 세트에 있는 것은 아닙니다.
반환된 값은 근사치입니다. 데이터 세트의 크기와 데이터 세트의 왜곡은 근사치의 정확도에 영향을 줍니다.
윈도우 함수로 사용되는 경우:
이 함수는 다음을 지원하지 않습니다.
OVER() 절의 ORDER BY 하위 절.
윈도우 프레임.
예¶
APPROX_PERCENTILE
함수를 보여줍니다.
값이 있는 테이블을 만들고 채웁니다.
CREATE TABLE testtable (c1 INTEGER); INSERT INTO testtable (c1) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);쿼리를 실행하고 출력을 표시합니다.
SELECT APPROX_PERCENTILE(c1, 0.1) FROM testtable; +----------------------------+ | APPROX_PERCENTILE(C1, 0.1) | |----------------------------| | 1.5 | +----------------------------+SELECT APPROX_PERCENTILE(c1, 0.5) FROM testtable; +----------------------------+ | APPROX_PERCENTILE(C1, 0.5) | |----------------------------| | 5.5 | +----------------------------+이 경우에서 반환된 값은 실제로 데이터 세트에 있는 어떤 값보다도 높습니다.
SELECT APPROX_PERCENTILE(c1, 0.999) FROM testtable; +------------------------------+ | APPROX_PERCENTILE(C1, 0.999) | |------------------------------| | 10.5 | +------------------------------+