> ## 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.

> Formatea las filas de cada grupo mediante un formato de salida y devuelve los datos formateados como una cadena.

# groupFormat

Formatea las filas de cada grupo mediante un formato de salida y devuelve los datos formateados como una cadena. Es similar a `formatRow`, pero funciona con el grupo completo y puede usar formatos basados en bloques.

<Warning>
  Todas las filas de cada grupo se acumulan en memoria antes de generar la cadena formateada. En grupos con un número muy elevado de filas, esto puede consumir una cantidad considerable de memoria. Considere usar `LIMIT` dentro de subconsultas o dividir los grupos grandes para mantener el uso de memoria bajo control.
</Warning>

<div id="syntax">
  ## Sintaxis
</div>

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

<div id="parameters">
  ## Parámetros
</div>

* `format` — Nombre del formato de salida, por ejemplo, `JSONEachRow`, `CSV`, `TabSeparated`.

<div id="arguments">
  ## Argumentos
</div>

* `x, y, ...` — Expresiones que se formatean como filas. Se requiere al menos un argumento.

<div id="returned-value">
  ## Valor devuelto
</div>

* Un [String](/docs/es/reference/data-types/string) que contiene la salida con formato del grupo.

<Note>
  Los nombres de las columnas en la salida con formato se generan como `c1`, `c2`, ... en el orden de los argumentos.

  No se garantiza ningún orden concreto de las filas formateadas.

  La configuración de formato de la consulta (por ejemplo, `format_csv_delimiter` o `output_format_json_quote_64bit_integers`) se toma cuando se inicializa la función de agregación y se usa para generar la salida. La configuración `output_format_write_statistics` siempre se desactiva forzosamente, por lo que la cadena formateada nunca contiene una sección de estadísticas.
</Note>

<div id="null-handling">
  ## Manejo de NULL
</div>

Al igual que `groupArray` y `groupConcat`, `groupFormat` omite una fila cuando cualquiera de sus argumentos es `NULL`; esas filas no aparecen en la salida con formato. Cuando un argumento es Nullable, el tipo de resultado es `Nullable(String)`, y un grupo en el que se omiten todas las filas — así como un argumento `NULL` literal sin tipo, de tipo `Nullable(Nothing)` — devuelve `NULL` mediante el combinador genérico `Null`.

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

<div id="examples">
  ## Ejemplos
</div>

<div id="example-json">
  ### Uso básico con JSONEachRow
</div>

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

Resultado:

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

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

Introducido en: v

Da formato a las filas de cada grupo con el formato de salida especificado y devuelve el resultado como una cadena.

El nombre del formato se pasa como parámetro, y los argumentos son las columnas a las que se aplicará el formato.
Los nombres de las columnas se generan como c1, c2, ... en la salida formateada.

**Sintaxis**

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

**Parámetros**

* `format` — Nombre del formato de salida. Por ejemplo, JSONEachRow, CSV, TabSeparated. [`String`](/docs/es/reference/data-types/string)

**Argumentos**

* `x, y, ...` — Expresiones que se formatearán como filas. [`Any`](/docs/es/reference/data-types/index)

**Valor devuelto**

Salida formateada para el grupo. [`String`](/docs/es/reference/data-types/string)

**Ejemplos**

**Uso básico**

```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"}
```
