> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> 각 그룹의 행을 출력 형식으로 포맷하고, 포맷된 데이터를 문자열로 반환합니다.

# groupFormat

각 그룹의 행을 출력 형식으로 포맷하고, 포맷된 데이터를 문자열로 반환합니다. `formatRow`와 비슷하지만, 전체 그룹에 대해 작동하며 block 기반 포맷도 사용할 수 있습니다.

<Warning>
  포맷된 문자열이 생성되기 전에 각 그룹의 모든 행이 메모리에 누적됩니다. 행 수가 매우 많은 그룹에서는 상당한 메모리를 소비할 수 있습니다. 메모리 사용량을 제어하려면 서브쿼리 안에서 `LIMIT`를 사용하거나 큰 그룹을 분할하는 방법을 고려하십시오.
</Warning>

<div id="syntax">
  ## 구문
</div>

```sql theme={null}
groupFormat(format)(x, y, ...)
```

<div id="parameters">
  ## 매개변수
</div>

* `format` — 출력 형식의 이름입니다. 예를 들어 `JSONEachRow`, `CSV`, `TabSeparated`가 있습니다.

<div id="arguments">
  ## 인수
</div>

* `x, y, ...` — 행 형식으로 포맷할 표현식입니다. 인수는 최소 1개 이상 필요합니다.

<div id="returned-value">
  ## 반환 값
</div>

* 그룹의 포맷된 출력이 포함된 [String](/docs/ko/reference/data-types/string)입니다.

<Note>
  포맷된 출력의 컬럼 이름은 인수 순서에 따라 `c1`, `c2`, ...로 생성됩니다.

  포맷된 행의 정확한 순서는 보장되지 않습니다.

  쿼리의 포맷 설정(예: `format_csv_delimiter` 또는 `output_format_json_quote_64bit_integers`)은 집계 함수가 초기화될 때 캡처되어 출력 생성에 사용됩니다. `output_format_write_statistics` 설정은 항상 비활성화되므로 포맷된 문자열에는 통계 섹션이 포함되지 않습니다.
</Note>

<div id="null-handling">
  ## NULL 처리
</div>

`groupArray` 및 `groupConcat`과 마찬가지로 `groupFormat`도 인수 중 하나라도 `NULL`이면 해당 행을 건너뛰며, 이런 행은 포맷된 출력에 나타나지 않습니다. 인수가 널 허용인 경우 결과 유형은 `Nullable(String)`이며, 모든 행이 건너뛰어지는 그룹과 `Nullable(Nothing)` 유형의 형식이 지정되지 않은 리터럴 `NULL` 인수는 일반 `Null` combinator를 통해 `NULL`을 반환합니다.

```sql theme={null}
SELECT groupFormat('JSONEachRow')(if(number = 0, NULL, number))
FROM numbers(3);
-- {"c1":1}
-- {"c1":2}
```

<div id="examples">
  ## 예시
</div>

<div id="example-json">
  ### JSONEachRow 기본 사용법
</div>

```sql theme={null}
SELECT groupFormat('JSONEachRow')(number, toString(number))
FROM numbers(3);
```

결과:

```text theme={null}
{"c1":0,"c2":"0"}
{"c1":1,"c2":"1"}
{"c1":2,"c2":"2"}
```

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

도입 버전: v

지정된 출력 형식을 사용해 각 그룹의 행을 포맷하고, 결과를 문자열로 반환합니다.

포맷 이름은 매개변수로 전달하며, 인수에는 포맷할 컬럼을 지정합니다.
포맷된 출력에서는 컬럼 이름이 c1, c2, ...로 생성됩니다.

**구문**

```sql theme={null}
groupFormat(format)(x, y, ...)
```

**매개변수**

* `format` — 출력 형식 이름입니다. 예를 들어 JSONEachRow, CSV, TabSeparated가 있습니다. [`String`](/docs/ko/reference/data-types/string)

**인수**

* `x, y, ...` — 행 형식으로 포맷할 표현식입니다. [`Any`](/docs/ko/reference/data-types/index)

**반환 값**

그룹의 포맷된 출력입니다. [`String`](/docs/ko/reference/data-types/string)

**예시**

**기본 사용법**

```sql title=Query theme={null}
SELECT groupFormat('JSONEachRow')(number, toString(number))
FROM numbers(3)
```

```response title=Response theme={null}
{"c1":0,"c2":"0"}
{"c1":1,"c2":"1"}
{"c1":2,"c2":"2"}
```
