APPROX_COUNT_DISTINCT¶
HyperLogLog를 사용해 입력값 고유 카디널리티의 근삿값을 반환합니다(즉, HLL(col1, col2, ... )
는 COUNT(DISTINCT col1, col2, ... )
의 근삿값을 반환함).
HyperLogLog에 대한 자세한 내용은 고유 값 개수 추정하기 를 참조하십시오.
- 별칭:
HLL.
- 참고 항목:
구문¶
집계 함수
APPROX_COUNT_DISTINCT( [ DISTINCT ] <expr1> [ , ... ] )
APPROX_COUNT_DISTINCT(*)
윈도우 함수
APPROX_COUNT_DISTINCT( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )
APPROX_COUNT_DISTINCT(*) OVER ( [ PARTITION BY <expr2> ] )
인자¶
expr1
고유 값의 수를 파악하려는 식입니다.
expr2
행을 파티션으로 그룹화하는 데 사용되는 선택적 식입니다.
반환¶
반환된 값의 데이터 타입은 INTEGER 입니다.
사용법 노트¶
계산은 근사치이지만, 결정적입니다. 동일한 입력 데이터로 이 함수를 호출하면 이 함수는 동일한 결과를 반환합니다.
NULL 값 및 집계 함수에 대한 자세한 내용은 집계 함수 및 NULL 값 을 참조하십시오.
윈도우 함수로 사용되는 경우:
이 함수는 다음을 지원하지 않습니다.
OVER() 절의 ORDER BY 하위 절.
윈도우 프레임.
예¶
This example shows how to use APPROX_COUNT_DISTINCT and its alias HLL. This example calls
both COUNT(DISTINCT i)
and APPROX_COUNT_DISTINCT(i)
to emphasize
that the results of those two functions do not always match exactly.
The exact output of the following query might vary because APPROX_COUNT_DISTINCT() returns an approximation, not an exact value.
SELECT COUNT(i), COUNT(DISTINCT i), APPROX_COUNT_DISTINCT(i), HLL(i) FROM sequence_demo; +----------+-------------------+--------------------------+--------+ | COUNT(I) | COUNT(DISTINCT I) | APPROX_COUNT_DISTINCT(I) | HLL(I) | |----------+-------------------+--------------------------+--------| | 1024 | 1024 | 1007 | 1007 | +----------+-------------------+--------------------------+--------+