Skip to main content

Introduction

Filtrer une table ClickHouse à l’aide d’une colonne de type tableau est une opération courante, et ClickHouse propose de nombreuses fonctions pour manipuler les colonnes de type tableau. Dans cet article, nous allons nous concentrer sur le filtrage d’une table à l’aide d’une colonne de type tableau, mais la vidéo ci-dessous présente aussi de nombreuses autres fonctions liées aux tableaux :

Exemple

Nous utiliserons ici l’exemple d’une table comportant deux colonnes, tags_string et tags_int, qui contiennent respectivement un tableau de chaînes de caractères et un tableau d’entiers.
  • Créez une base de données et une table d’exemple.
  • Créer une table d’exemple
  • Insérez des données d’exemple dans la table.
Filtrez la table à l’aide de la fonction has(arr, elem) afin de renvoyer les lignes pour lesquelles le tableau arr contient l’élément elem. Filtrez la table afin de renvoyer les lignes pour lesquelles le tableau tags_string contient l’élément tag1.
Utilisez la fonction hasAll(arr, elems) pour renvoyer les lignes dans lesquelles tous les éléments du tableau elems sont présents dans le tableau arr. Filtrez la table pour renvoyer les lignes dans lesquelles tous les éléments du tableau tags_string sont présents dans le tableau ['tag1', 'tag2'].
Utilisez la fonction hasAny(arr, elems) pour renvoyer les lignes dans lesquelles au moins un élément du tableau elems est présent dans le tableau arr. Filtrez la table pour renvoyer les lignes dans lesquelles au moins un élément du tableau tags_string est présent dans le tableau ['tag1', 'tag2'].
Nous pouvons utiliser une fonction lambda pour filtrer la table à l’aide de la fonction arrayExists(lambda, arr). Filtrez la table pour renvoyer les lignes dans lesquelles au moins un élément du tableau tags_int est supérieur à 3.
Dernière modification le 14 août 2026