count
count
도입 버전: v1.1
행 수 또는 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 메타데이터를 사용하여 최적화됩니다.
행 수준 보안(row-level security)을 사용해야 하는 경우 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) 쿼리가 느린 경우 병렬 처리가 개선되도록 GROUP BY 절을 추가하는 방안을 고려하십시오.
또한 프로젝션(projection)을 사용하여 COUNT(DISTINCT target_col)에 사용되는 대상 컬럼에 인덱스를 생성할 수 있습니다.
구문
인수
expr— 선택 사항인 식입니다. 이 함수는 이 식이 null이 아닌 값을 반환한 횟수를 계산합니다.Expression
반환 값
함수를 매개변수 없이 호출하면 행(row) 수를 반환하고, 그렇지 않으면 전달된 식이 null이 아닌 값을 반환한 횟수를 반환합니다. UInt64
예시
기본 행(row) 수 계산
COUNT(DISTINCT) 예제