HLL

HLL

HyperLogLog을 사용해 입력의 고유 카디널리티(distinct cardinality) 근사값을 반환해요. 즉 HLL(col1, col2, ... )는 COUNT(DISTINCT col1, col2, ... )의 근사값을 반환해요.

HyperLogLog에 대한 자세한 내용은 고유 값 수 추정 문서를 참고하세요.

별칭: APPROX_COUNT_DISTINCT

출처: Snowflake SQL Reference - HLL

본문

구문

집계 함수

HLL( [ DISTINCT ] <expr1> [ , ... ] )

HLL(*)

윈도우 함수

HLL( [ DISTINCT ] <expr1> [ , ... ] ) OVER ( [ PARTITION BY <expr2> ] )

HLL(*) OVER ( [ PARTITION BY <expr2> ] )

인자

expr1

  • 고유 값 수를 알고 싶은 표현식이에요.

expr2

  • 행을 파티션으로 묶는 데 사용하는 선택적 표현식이에요.

반환 값

반환되는 값의 데이터 타입은 INTEGER예요.

사용 시 참고 사항

  • DISTINCT를 인자로 포함할 수 있지만 효과는 없어요.
  • NULL 값과 집계 함수에 대한 정보는 집계 함수와 NULL 값 문서를 참고하세요.
  • 이 함수를 윈도우 함수로 호출할 때는 다음을 지원하지 않아요. OVER 절 안의 ORDER BY 절. 명시적 윈도우 프레임.

예시

이 예시는 HLL과 그 별칭인 APPROX_COUNT_DISTINCT를 사용하는 방법을 보여줘요. 이 예시는 COUNT(DISTINCT i)와 APPROX_COUNT_DISTINCT(i)를 모두 호출해서, 이 두 함수의 결과가 항상 정확히 일치하지는 않음을 강조해요.

다음 쿼리의 정확한 출력은 APPROX_COUNT_DISTINCT()가 정확한 값이 아니라 근사값을 반환하므로 달라질 수 있어요.

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

더 알아보기