Skip to main content
La sélection dynamique de colonnes est une fonctionnalité puissante mais encore peu utilisée de ClickHouse, qui vous permet de sélectionner des colonnes à l’aide d’expressions régulières plutôt que de nommer chaque colonne individuellement. Vous pouvez également appliquer des fonctions aux colonnes correspondantes à l’aide du modificateur APPLY, ce qui en fait une fonctionnalité particulièrement utile pour les tâches d’analyse et de transformation des données. Nous allons voir comment utiliser cette fonctionnalité à l’aide du jeu de données des taxis de New York, que vous pouvez également retrouver dans le ClickHouse SQL playground.

Sélectionner les colonnes correspondant à un motif

Commençons par un cas courant : sélectionner uniquement les colonnes contenant _amount dans le jeu de données des taxis de New York. Au lieu de saisir manuellement chaque nom de colonne, nous pouvons utiliser l’expression COLUMNS avec une expression régulière :
Essayez cette requête dans le SQL playground
Cette requête renvoie les 10 premières lignes, mais uniquement pour les colonnes dont le nom correspond au motif .*_amount (n’importe quelle suite de caractères suivie de “_amount”).
Supposons que nous voulions également renvoyer les colonnes qui contiennent les termes fee ou tax. Nous pouvons modifier l’expression régulière pour les inclure :
Essayez cette query dans le Playground SQL

Sélection de plusieurs motifs

Nous pouvons combiner plusieurs motifs de colonnes dans une même requête :
Essayez cette requête dans le SQL playground

Appliquer des fonctions à toutes les colonnes

Nous pouvons également utiliser le modificateur APPLY pour appliquer des fonctions à l’ensemble des colonnes. Par exemple, si nous voulions trouver la valeur maximale de chacune de ces colonnes, nous pourrions exécuter la requête suivante :
Essayez cette requête dans le SQL playground
Ou peut-être voulons-nous plutôt voir la moyenne :
Essayez cette requête dans le SQL playground
Ces valeurs comportent beaucoup de chiffres après la virgule, mais heureusement, nous pouvons corriger cela en chaînant des fonctions. Ici, nous allons appliquer la fonction avg, suivie de la fonction round :
Essayez cette requête dans le SQL playground
Mais cela arrondit les moyennes à des nombres entiers. Si nous voulons les arrondir, par exemple, à 2 décimales, nous pouvons aussi le faire. En plus d’accepter des fonctions, le modificateur APPLY accepte une expression lambda, ce qui nous permet de faire en sorte que la fonction d’arrondi arrondisse nos valeurs moyennes à 2 décimales :
Essayez cette requête dans le SQL playground

Remplacer des colonnes

Jusqu’ici, tout va bien. Mais supposons que nous voulions modifier l’une des valeurs, tout en laissant les autres inchangées. Par exemple, nous pouvons vouloir doubler le montant total et diviser la taxe MTA par 1,1. Pour cela, utilisez le modificateur REPLACE, qui remplace une colonne tout en laissant les autres inchangées.
Testez cette requête dans le SQL playground

Exclusion de colonnes

On peut également choisir d’exclure un champ à l’aide du modificateur EXCEPT. Par exemple, pour supprimer la colonne tolls_amount, on écrirait la requête suivante :
Essayez cette requête dans le SQL playground
Dernière modification le 3 juillet 2026