ClickHouse/docs/fr/sql-reference/data-types/aggregatefunction.md

71 lines
3.3 KiB
Markdown
Raw Normal View History

---
machine_translated: true
machine_translated_rev: f865c9653f9df092694258e0ccdd733c339112f5
toc_priority: 52
toc_title: AggregateFunction (nom, types_of_arguments...)
---
# AggregateFunction(name, types\_of\_arguments…) {#data-type-aggregatefunction}
Aggregate functions can have an implementation-defined intermediate state that can be serialized to an AggregateFunction(…) data type and stored in a table, usually, by means of [une vue matérialisée](../../sql-reference/statements/select.md#create-view). La manière courante de produire un État de fonction dagrégat est dappeler la fonction dagrégat avec le `-State` suffixe. Pour obtenir le résultat final de lagrégation dans lavenir, vous devez utiliser la même fonction dagrégation avec la `-Merge`suffixe.
`AggregateFunction` — parametric data type.
**Paramètre**
- Nom de la fonction dagrégation.
If the function is parametric, specify its parameters too.
- Types des arguments de la fonction dagrégation.
**Exemple**
``` sql
CREATE TABLE t
(
column1 AggregateFunction(uniq, UInt64),
column2 AggregateFunction(anyIf, String, UInt8),
column3 AggregateFunction(quantiles(0.5, 0.9), UInt64)
) ENGINE = ...
```
[uniq](../../sql-reference/aggregate-functions/reference.md#agg_function-uniq), anyIf ([tout](../../sql-reference/aggregate-functions/reference.md#agg_function-any)+[Si](../../sql-reference/aggregate-functions/combinators.md#agg-functions-combinator-if)) et [les quantiles](../../sql-reference/aggregate-functions/reference.md) les fonctions dagrégation sont-elles prises en charge dans ClickHouse.
## Utilisation {#usage}
### Insertion De Données {#data-insertion}
Pour insérer des données, utilisez `INSERT SELECT` avec le regroupement d `-State`- fonction.
**Exemples de fonction**
``` sql
uniqState(UserID)
quantilesState(0.5, 0.9)(SendTiming)
```
Contrairement aux fonctions correspondantes `uniq` et `quantiles`, `-State`- les fonctions renvoient létat, au lieu de la valeur finale. En dautres termes, ils renvoient une valeur de `AggregateFunction` type.
Dans les résultats de `SELECT` requête, les valeurs de `AggregateFunction` type ont une représentation binaire spécifique à limplémentation pour tous les formats de sortie ClickHouse. Si les données de vidage dans, par exemple, `TabSeparated` format avec `SELECT` requête, puis ce vidage peut être chargé en utilisant `INSERT` requête.
### Sélection De Données {#data-selection}
Lors de la sélection des données `AggregatingMergeTree` table, utilisez `GROUP BY` et les mêmes fonctions dagrégat que lors de linsertion de données, mais en utilisant `-Merge`suffixe.
Une fonction dagrégation avec `-Merge` suffixe prend un ensemble détats, les combine, et renvoie le résultat complet de lagrégation de données.
Par exemple, les deux requêtes suivantes retournent le même résultat:
``` sql
SELECT uniq(UserID) FROM table
SELECT uniqMerge(state) FROM (SELECT uniqState(UserID) AS state FROM table GROUP BY RegionID)
```
## Exemple DUtilisation {#usage-example}
Voir [AggregatingMergeTree](../../engines/table-engines/mergetree-family/aggregatingmergetree.md) Description du moteur.
[Article Original](https://clickhouse.tech/docs/en/data_types/nested_data_structures/aggregatefunction/) <!--hide-->