메인 콘텐츠로 건너뛰기

count

도입 버전: v1.1.0 행 수 또는 NULL이 아닌 값의 개수를 계산합니다. ClickHouse는 count에 대해 다음 구문을 지원합니다.
  • count(expr) 또는 COUNT(DISTINCT expr).
  • count() 또는 COUNT(*). count() 구문은 ClickHouse 전용입니다.
세부 정보 ClickHouse는 COUNT(DISTINCT ...) 구문을 지원합니다. 이 구문의 동작은 count_distinct_implementation 설정에 따라 달라집니다. 이 설정은 연산 수행에 어떤 uniq* 함수를 사용할지 결정합니다. 기본값은 uniqExact 함수입니다. SELECT count() FROM table 쿼리는 기본적으로 MergeTree의 메타데이터를 사용해 최적화됩니다. 행 수준 보안을 사용해야 한다면 optimize_trivial_count_query 설정으로 이 최적화를 비활성화하십시오. 반면 SELECT count(nullable_column) FROM table 쿼리는 optimize_functions_to_subcolumns 설정을 활성화하면 최적화할 수 있습니다. optimize_functions_to_subcolumns = 1이면 함수는 전체 컬럼 데이터를 읽고 처리하는 대신 null 서브컬럼만 읽습니다. SELECT count(n) FROM table 쿼리는 SELECT sum(NOT n.null) FROM table로 변환됩니다.
COUNT(DISTINCT expr) 성능 개선COUNT(DISTINCT expr) 쿼리가 느리다면 병렬화가 향상되므로 GROUP BY 절을 추가하는 것을 고려하십시오. 또한 COUNT(DISTINCT target_col)에 사용하는 대상 컬럼에 인덱스를 만들기 위해 projection을 사용할 수도 있습니다.
구문
count([expr])
인수
  • expr — 선택 사항입니다. 표현식입니다. 이 함수는 이 표현식이 NULL이 아닌 값을 반환한 횟수를 계산합니다. 표현식
반환 값 함수가 매개변수 없이 호출되면 행 수를 반환하고, 그렇지 않으면 전달된 표현식이 NULL이 아닌 값을 반환한 횟수를 반환합니다. UInt64 예시 기본 행 수
Query
SELECT count() FROM t
Response
┌─count()─┐
│       5 │
└─────────┘
COUNT(DISTINCT) 예시
Query
-- 이 예시는 `count_distinct_implementation` 설정 값에 따라 `count(DISTINCT num)`이 `uniqExact` 함수로 수행됨을 보여줍니다.
SELECT name, value FROM system.settings WHERE name = 'count_distinct_implementation';
SELECT count(DISTINCT num) FROM t
Response
┌─name──────────────────────────┬─value─────┐
│ count_distinct_implementation │ uniqExact │
└───────────────────────────────┴───────────┘
┌─uniqExact(num)─┐
│              3 │
└────────────────┘
마지막 수정일 2026년 6월 10일