<< Back

Créer des requêtes dynamiques avec Alteryx

Comment créer des requêtes dynamiques avec Alteryx et surtout, pourquoi s’en servir ? En tant qu’analystes, nous avons souvent besoin d’extraire des données sur une période spécifique, par exemples, les dernières semaines ou journées écoulées. Pour ce faire, nous pouvons exporter l’ensemble de la base et ensuite filtrer pour ne récupérer qu’une partie des données. Mais quand on utilise une énorme base de données, cela peut vite tourner au casse-tête.

Avec SQL, vous pouvez créer le filtre directement dans le code via une requête imbriquée. Attention, cela peut paraître compliqué pour les non-initiés. De plus, cela ajoute une couche de complexité pour l’utilisateur. Il devra prendre en compte cet input à la lecture du workflow dans Alteryx et identifier que c’est une requête.

Il existe cependant une autre méthode.

Comment créer une requête in-db dans Alteryx

Via les outils in-db, créer des requêtes de manière visuelle et amener cette dynamique sans rentrer dans la difficulté du code.

Prenons, par exemple, l’idée d’extraire les données du dernier mois disponible dans notre base de données clients en utilisant Alteryx. J’ai dans ma base de données, un indicateur d’arrêté des informations qui contient le mois et l’année (par exemple 2021-04 pour le mois d’avril 2021).

Je vais pouvoir réaliser une première requête en In-Db qui va me permettre de sélectionner l’arrêté maximum disponible. Pour faire ceci, j’utilise un Input in db dans lequel je vais sélectionner la table de mes clients, puis j’utilise un summarize in-db où je vais récupérer le max du champ arrêté de l’ensemble de ma base de données.

Créer des requêtes dynamiques sur Alteryx via les outils in-db

Après avoir effectuer ces étapes, il suffit simplement de récupérer les données en utilisant un data stream out.

récupérer les donnes avec un data stram out pour créer une requête sur Alteryx

Je peux ensuite calculer des éléments localement par rapport à la donnée récupérée. Par exemple : calculer la date de la semaine précédente ou encore l’année précédente.

Utiliser l’outil « Formule » pour recréer une requête

Après avoir créer nous requête in-db, nous pouvons utiliser un outil formule pour recréer une requête (en format texte) avec les informations et les conditions souhaitées. Dans mon exemple, je vais écrire la requête de la façon suivante : « Select * from base_clients where date_arrt = ‘» + [max_date_arrt] + «’ » 

Cette requête est une version très simple de requête SQL. Elle va sélectionner tous les champs de ma base de données avec la condition suivante : sélectionner les lignes dont la date d’arrêté est égale au maximum de ma date d’arrêté présente dans ma base de données.

Je crée ensuite un champ que j’appelle « alias ». J’entre l’alias que j’ai utilisé pour me connecter à ma base de données : « connection_indb »

créer un champs pour créer des requêtes dynamiques Alteryx

Il me suffit d’utiliser un outil « dynamic input in db » qui permet de lancer la requête précédemment saisie.

Créer des requêtes dynamiques sur Alteryx avec un outil dynamic in db

Allez plus loin avec les requêtes dynamiques dans Alteryx

Vous savez désormais lancer une requête en mettant des paramètres spécifiques et créer des requêtes dynamiques dans Alteryx. Ici, nous utilisons pour exemples les dates ( d’ailleurs, n’hésitez pas à en savoir plus sur les fonctions de dates dans Alteryx) mais nous pouvons imaginer des requêtes bien plus complexes ;

Cette méthode fait partie des bonnes pratiques. Elle permet de réduire le volume de données et d’obtenir seulement les données que l’on souhaite analyser.

N’hésitez pas à vous inscrire gratuitement à nos formations découverte Alteryx ! Vous pourrez découvrir l’outils et de bénéficier des conseils et de l’accompagnement de nos formateurs officiels.

Si vous souhaitez découvrir l’outils par vous-même et tester les différentes astuces que vous avez découvertes dans l’article.

Arthur Ladwein

Paris - Lille

One thought on “Créer des requêtes dynamiques avec Alteryx

  1. Bonjour,
    est-il possible dans une requête INDB dans la clause WHERE d’insérer ce type de recherche avec la fonction MAX mais comment formuler le WHERE correctement

    Exemple :
    WHERE DFIN.DFIN_FRCT_REPR_MT_FINN_REGR.PERD_ARRT_INFO = ‘202105’

    sachant que 202105 est la valeur max à la date d’aujourd’hui
    Merci.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *