Passer au contenu principal

Introduction

Filtrer une table ClickHouse à l’aide d’une colonne de type Array est une tâche courante, et le produit propose de nombreuses fonctions pour travailler avec des colonnes de type Array. Dans cet article, nous allons nous concentrer sur le filtrage d’une table à l’aide d’une colonne de type Array, mais la vidéo ci-dessous présente également de nombreuses autres fonctions liées aux tableaux :

Exemple

Nous prendrons comme exemple 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 quelques 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 où au moins un élément du tableau elems est présent dans le tableau arr. Appliquez un filtre à la table pour renvoyer les lignes où 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 29 juin 2026