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

> Met en forme les lignes de chaque groupe à l’aide d’un format de sortie et renvoie les données mises en forme sous forme de chaîne de caractères.

# groupFormat

Met en forme les lignes de chaque groupe à l’aide d’un format de sortie et renvoie les données mises en forme sous forme de chaîne de caractères. Cette fonction est similaire à `formatRow`, mais elle s’applique à l’ensemble du groupe et peut utiliser des formats basés sur des blocs.

<Warning>
  Toutes les lignes de chaque groupe sont accumulées en mémoire avant la production de la chaîne de caractères mise en forme. Pour les groupes contenant un très grand nombre de lignes, cela peut consommer une quantité importante de mémoire. Pensez à utiliser `LIMIT` dans des sous-requêtes ou à scinder les grands groupes afin de garder la consommation de mémoire sous contrôle.
</Warning>

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

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

<div id="parameters">
  ## Paramètres
</div>

* `format` — Nom du format de sortie, par exemple `JSONEachRow`, `CSV`, `TabSeparated`.

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

* `x, y, ...` — Expressions à formater sous forme de lignes. Au moins un argument est requis.

<div id="returned-value">
  ## Valeur renvoyée
</div>

* Une [String](/docs/fr/reference/data-types/string) contenant la sortie formatée du groupe.

<Note>
  Les noms de colonnes dans la sortie formatée sont générés sous la forme `c1`, `c2`, ... dans l'ordre des arguments.

  L'ordre exact des lignes formatées n'est pas garanti.

  Les paramètres de format de la requête (par exemple `format_csv_delimiter` ou `output_format_json_quote_64bit_integers`) sont enregistrés lors de l'initialisation de la fonction d'agrégation et utilisés pour produire la sortie. Le paramètre `output_format_write_statistics` est toujours désactivé, de sorte que la chaîne formatée ne contient jamais de section de statistiques.
</Note>

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

Comme `groupArray` et `groupConcat`, `groupFormat` ignore une ligne dès que l'un de ses arguments vaut `NULL` ; ces lignes n'apparaissent pas dans la sortie formatée. Lorsqu'un argument est nullable, le type de résultat est `Nullable(String)`, et un groupe dont toutes les lignes sont ignorées — ainsi qu'un argument `NULL` littéral non typé de type `Nullable(Nothing)` — renvoie `NULL` via le combinateur générique `Null`.

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

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

<div id="example-json">
  ### Utilisation de base avec JSONEachRow
</div>

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

Résultat :

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

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

Introduit dans : v

Formate les lignes de chaque groupe à l’aide du format de sortie spécifié et renvoie le résultat sous forme de chaîne.

Le nom du format est passé en paramètre, et les arguments correspondent aux colonnes à formater.
Les noms de colonnes sont générés sous la forme c1, c2, ... dans la sortie formatée.

**Syntaxe**

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

**Paramètres**

* `format` — Nom du format de sortie. Par exemple, JSONEachRow, CSV, TabSeparated. [`String`](/docs/fr/reference/data-types/string)

**Arguments**

* `x, y, ...` — Expressions à mettre en forme sous forme de lignes. [`Any`](/docs/fr/reference/data-types/index)

**Valeur renvoyée**

Résultat formaté pour le groupe. [`String`](/docs/fr/reference/data-types/string)

**Exemples**

**Utilisation de base**

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