Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

count

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([expr])

인수

  • expr — 선택 사항입니다. 표현식입니다. 이 함수는 이 표현식이 NULL이 아닌 값을 반환한 횟수를 계산합니다. 표현식

반환 값

함수가 매개변수 없이 호출되면 행 수를 반환하고, 그렇지 않으면 전달된 표현식이 NULL이 아닌 값을 반환한 횟수를 반환합니다. UInt64

예시

기본 행 수

CREATE TABLE t (num UInt8) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (2), (3);

SELECT count() FROM t
┌─count()─┐
│       5 │
└─────────┘

COUNT(DISTINCT) 예시

-- This example shows that `count(DISTINCT num)` is performed by the `uniqExact` function according to the `count_distinct_implementation` setting value.
SELECT name, value FROM system.settings WHERE name = 'count_distinct_implementation';
SELECT count(DISTINCT num) FROM t
┌─name──────────────────────────┬─value─────┐
│ count_distinct_implementation │ uniqExact │
└───────────────────────────────┴───────────┘
┌─countDistinct(num)─┐
│                  3 │
└────────────────────┘
Navigation