Passer au contenu principal

Utilisation des agrégats filtrés

ClickHouse offre un moyen simple et intuitif d’écrire des agrégats filtrés. Par exemple, comparez la manière standard en SQL d’écrire des agrégats filtrés (qui fonctionne très bien dans ClickHouse) à la syntaxe abrégée utilisant le combinateur de fonction d’agrégation -If, qui peut être ajouté à n’importe quelle fonction d’agrégation :
--standard SQL
SELECT
   avg(number)
FILTER (WHERE number > 50)
FROM numbers(100)

--ClickHouse using an aggregate combinator
SELECT
   avgIf(number, number > 50)
FROM numbers(100)
De même, il existe un combinateur d’agrégation -Distinct :
--standard SQL
SELECT avg(DISTINCT number)

--ClickHouse using an aggregate combinator
SELECT avgDistinct(number)
Pourquoi les agrégats filtrés sont-ils importants ? Parce qu’ils permettent de mettre en œuvre la fonctionnalité de “comparaison de segments” dans les services d’analyse web. Par exemple :
WITH
   Region = 'us' AS segment1,
   Browser = 'Chrome' AS segment2
SELECT
   uniqIf(UserID, segment1),
   uniqIf(UserID, segment2)
WHERE segment1 OR segment2
Consultez la page combinateur de fonction d’agrégation de la documentation pour plus de détails.
Dernière modification le 29 juin 2026