> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 행 수 또는 NULL이 아닌 값의 개수를 계산합니다.

# count

<div id="count">
  ## count
</div>

도입 버전: v1.1.0

행 수 또는 NULL이 아닌 값의 개수를 계산합니다.

ClickHouse는 `count`에 대해 다음 구문을 지원합니다.

* `count(expr)` 또는 `COUNT(DISTINCT expr)`.
* `count()` 또는 `COUNT(*)`. `count()` 구문은 ClickHouse 전용입니다.

**세부 정보**

ClickHouse는 `COUNT(DISTINCT ...)` 구문을 지원합니다.
이 구문의 동작은 [`count_distinct_implementation`](/ko/reference/settings/session-settings#count_distinct_implementation) 설정에 따라 달라집니다.
이 설정은 연산 수행에 어떤 [uniq\*](/ko/reference/functions/aggregate-functions/uniq) 함수를 사용할지 결정합니다.
기본값은 [uniqExact](/ko/reference/functions/aggregate-functions/uniqExact) 함수입니다.

`SELECT count() FROM table` 쿼리는 기본적으로 MergeTree의 메타데이터를 사용해 최적화됩니다.
행 수준 보안을 사용해야 한다면 [`optimize_trivial_count_query`](/ko/reference/settings/session-settings#optimize_trivial_count_query) 설정으로 이 최적화를 비활성화하십시오.

반면 `SELECT count(nullable_column) FROM table` 쿼리는 [`optimize_functions_to_subcolumns`](/ko/reference/settings/session-settings#optimize_functions_to_subcolumns) 설정을 활성화하면 최적화할 수 있습니다.
`optimize_functions_to_subcolumns = 1`이면 함수는 전체 컬럼 데이터를 읽고 처리하는 대신 [`null`](/ko/reference/data-types/nullable#finding-null) 서브컬럼만 읽습니다.
`SELECT count(n) FROM table` 쿼리는 `SELECT sum(NOT n.null) FROM table`로 변환됩니다.

<Tip>
  **COUNT(DISTINCT expr) 성능 개선**

  `COUNT(DISTINCT expr)` 쿼리가 느리다면 병렬화가 향상되므로 [`GROUP BY`](/ko/reference/statements/select/group-by) 절을 추가하는 것을 고려하십시오.
  또한 `COUNT(DISTINCT target_col)`에 사용하는 대상 컬럼에 인덱스를 만들기 위해 [projection](/ko/reference/statements/alter/projection)을 사용할 수도 있습니다.
</Tip>

**구문**

```sql theme={null}
count([expr])
```

**인수**

* `expr` — 선택 사항입니다. 표현식입니다. 이 함수는 이 표현식이 NULL이 아닌 값을 반환한 횟수를 계산합니다. [`표현식`](/ko/reference/data-types/special-data-types/expression)

**반환 값**

함수가 매개변수 없이 호출되면 행 수를 반환하고, 그렇지 않으면 전달된 표현식이 NULL이 아닌 값을 반환한 횟수를 반환합니다. [`UInt64`](/ko/reference/data-types/int-uint)

**예시**

**기본 행 수**

```sql title=Query theme={null}
SELECT count() FROM t
```

```response title=Response theme={null}
┌─count()─┐
│       5 │
└─────────┘
```

**COUNT(DISTINCT) 예시**

```sql title=Query theme={null}
-- 이 예시는 `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 title=Response theme={null}
┌─name──────────────────────────┬─value─────┐
│ count_distinct_implementation │ uniqExact │
└───────────────────────────────┴───────────┘
┌─uniqExact(num)─┐
│              3 │
└────────────────┘
```
