Se connecter à une requête SQL personnalisée

Pour la majorité des bases de données, vous pouvez vous connecter à une requête spécifique plutôt qu'à l'ensemble de données entier. Étant donné que la syntaxe SQL varie légèrement selon la base de données, l'instruction SQL personnalisée que vous pouvez utiliser pour vous connecter à une base de données peut être différente de l'instruction SQL personnalisée que vous utilisez pour vous connecter à une autre. Par contre, utiliser SQL personnalisé s'avère souvent utile lorsque vous savez exactement de quelles informations vous avez besoin et comment formuler des requêtes SQL.

Bien qu'il existe plusieurs raisons pour lesquelles vous pouvez utiliser SQL personnalisé, vous pouvez utiliser SQL personnalisé pour unir vos données à travers plusieurs tables, remanier des champs afin de réaliser des liaisons entre des bases de données, restructurer ou réduire la taille de vos données à analyser, etc.

Pour les sources de données Excel et texte, cette option est disponible uniquement pour les classeurs créés avec des versions antérieures de Tableau Desktop 8.2 ou en cas d'utilisation de Tableau Desktop sur Windows avec l'ancienne connexion. Pour vous connecter aux fichiers Excel ou texte à l'aide de la connexion héritée, connectez-vous au fichier, et dans la boîte de dialogue Ouvrir, cliquez sur le menu déroulant Ouvrir, puis sélectionnez Ouvrir avec l'ancienne connexion.

IMPORTANT : depuis Tableau 2019.1, vous ne pouvez plus créer une nouvelle connexion héritée Excel ou texte. Les classeurs existants créés avec ces connexions héritées continueront de fonctionner jusqu'à la version 2019.2, où toute prise en charge des connexions héritées sera supprimée. Consultez le document Alternatives aux connexions héritées dans la communauté Tableau pour connaître les alternatives à l'utilisation de la connexion héritée.

Se connecter à une requête SQL personnalisée

  1. Une fois connecté aux données, double-cliquez sur l'option Nouveau SQL personnalisé dans la page de la source de données.

  2. Saisissez ou collez la requête dans la zone de texte.

  3. Lorsque vous avez terminé, cliquez sur OK.

Lorsque vous mettez fin à la connexion à vos données, seuls les champs pertinents de la requête SQL personnalisée s'affichent dans la grille de données de la page Source de données.

Exemples de requêtes SQL personnalisées

Combiner vos tables verticalement (union)

Si vous avez besoin d'ajouter des données les unes aux autres, vous pouvez utiliser l'option d'union directement dans Tableau. Dans certains cas, votre base de données ne prend pas en charge cette option si bien que vous pouvez utiliser SQL personnalisé à la place.

Supposons, par exemple, que vous ayez les deux tables suivantes : Novembre et Décembre.

Novembre Décembre

Vous pouvez utiliser la requête SQL personnalisée suivante pour ajouter la seconde table, Décembre, à la première table, Novembre.

SELECT * FROM November UNION ALL SELECT * FROM December

Le résultat de la requête se présente ainsi dans la grille de données :

Pour plus d'informations sur les options d'union, consultez Réunir vos données.

Changer le type de données d'un champ pour réaliser une liaison entre des bases de données

Lorsque vous souhaitez réaliser une liaison entre deux tables, le type de données des champs que vous liez doit être identique. Dans les cas où les types de données des champs ne sont pas identiques, vous pouvez utiliser SQL personnalisé pour changer le type de données (remanier) du champ avant de réaliser la liaison.

Par exemple, supposons que vous souhaitiez lier deux tables, Main et Sub, en utilisant les champs Root et ID, respectivement. Le champ Root est de type nombre, et le champ ID est de type chaîne. Vous pouvez utiliser la requête SQL personnalisée qui suit pour changer le type de données Root d'un nombre à une chaîne afin de pouvoir lier les tables Main et Sub en utilisant les champs Root et ID.

SELECT [Main].[Root] AS [Root_Number]
CAST([Main].[Root] AS INT] AS [Root_String]
FROM [Main]

Le résultat de cette requête montre le champ Root d'origine et le champ Root remanié sous forme de chaîne.

Pour plus d'informations sur les liaisons et les liaison sentre des bases de données, consultez Lier vos données.

Réduire la taille de vos données

Lorsque vous travaillez avec des ensembles de données extrêmement volumineux, vous pouvez gagner du temps lors de l'exploitation de vos données en commençant par réduire leur taille.

Par exemple, supposons que vous ayez une table volumineuse appelée FischerIris. Vous pouvez utiliser la requête SQL personnalisée suivante pour récupérer les colonnes et les enregistrements spécifiés, réduisant ainsi la taille de l'ensemble de données auquel vous vous connectez depuis Tableau.

SELECT
[FischerIris].[Species] AS [Species],
[FischerIris].[Width] AS [Petal Width],
COUNT([FischerIris].[ID]) AS [Num of Species]
FROM [FischerIris]
WHERE [FischerIris].[Organ] = 'Petal'
AND [FischerIris].[Width] > 15.0000
GROUP BY [FischerIris].[Species], [FischerIris].[Width]

Restructurer vos données (tableau croisé dynamique)

Dans certains cas, il peut arriver que vous utilisiez une table ayant besoin d'être restructurée avant l'analyse. Bien que ce type de tâche puisse être effectué directement dans Tableau à l'aide d'options telles que le tableau croisé dynamique, il se peut que votre base de données ne la prenne pas en charge. Dans ce cas, vous pouvez utiliser SQL personnalisé à la place.

Supposons, par exemple, que vous ayez la table suivante :

Pour modifier sa structure et optimiser vos données en vue de l'analyse dans Tableau, vous pouvez utiliser la requête SQL personnalisée suivante :

SELECT Table1.Season ID AS [Season ID],
Table1.Items - Don't like AS [Quantity],
"Don't Like" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS [Season ID],
Table.Items - Defective AS [Quantity],
"Defective" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS [Season ID],
Table1.Items - Too big AS [Quantity],
"Too Big" AS [Reason]
FROM Table1
UNION ALL
SELECT Table1.Season ID AS Season ID,
Table1.Items - Too small AS [Quantity]
"Too Small" AS [Reason]
FROM Table1

Le résultat de la requête se présente ainsi dans la grille de données :

Pour plus d'informations sur l'option de pivotement, consultez Permuter les données de colonnes en lignes.

Combiner (lier) et agréger vos données

Si vous avez besoin de combiner des tables et d'agréger vos données, vous pouvez utiliser à la fois une liaison et des options de type d'agrégation par défaut directement dans Tableau. Dans certains cas, vous pouvez utiliser SQL personnalisé à la place.

Supposons, par exemple, que vous ayez les deux tables suivantes : Commandes et Fournisseurs.

Commandes Fournisseurs

Vous pouvez utiliser la requête SQL personnalisée suivante pour trouver un total dans le nombre de commandes et effectuer une liaison gauche dans les tables Commandes et Fournisseurs :

SELECT Vendors.Name,COUNT(Orders.Order) AS Number Of Orders
FROM Orders
LEFT JOIN Vendors
ON Orders.VendorID=Vendors.VendorID
GROUP BY Name;

Le résultat de la requête se présente ainsi :

Pour plus d'informations sur les liaisons, voir Lier vos données.

Erreurs lors de l'identification de colonnes en double

Si votre requête SQL personnalisée identifie des colonnes en double, des erreurs peuvent se produire lorsque vous tentez d'utiliser l'une des colonnes pour votre analyse dans Tableau. Cela se produit même si la requête est valide. Observez par exemple la requête suivante :

SELECT * FROM authors, titleauthor WHERE authors.au_id = titleauthor.au_id

La requête est valide, mais le champ au_id est ambigu, car il existe dans les tables « authors » et « titleauthor ». Tableau se connecte à la requête, mais vous obtenez une erreur chaque fois que vous tentez d'utiliser le champ au_id. Ceci est dû au fait que Tableau ne sait pas à quelle table vous faites référence.

Remarque : il est recommandé de définir des alias de colonne avec une clause AS quand cela est possible dans une requête SQL personnalisée. En effet, chaque base de données possède ses propres règles en matière de génération automatique de nom de colonne, dès lors qu'un alias n'est pas utilisé.

Modifier une requête SQL personnalisée

Pour modifier une requête SQL personnalisée

  1. Dans le canevas de la page de la source de données, pointez sur la table SQL personnalisée jusqu'à ce que la flèche s'affiche.

  2. Cliquez sur la flèche, puis sélectionnez Modifier SQL personnalisé.

  3. Dans la boîte de dialogue, modifiez la requête SQL personnalisée.

Pour modifier le nom d'une requête SQL personnalisée

Lorsque vous faites glisser une requête SQL personnalisée vers l'espace de travail, Tableau lui donne un nom par défaut : Custom SQL Query, Custom SQL Query1, etc. Vous pouvez remplacer le nom par défaut par un nom plus évocateur.

  1. Dans le volet Source de données, dans l'espace de travail, double-cliquez sur le nom de requête par défaut, par exemple Custom SQL Query .

  2. Entrez le nom que vous souhaitez utiliser pour votre requête SQL personnalisée.

Utiliser des paramètres dans une requête SQL personnalisée

Dans une instruction de requête SQL personnalisée, vous pouvez utiliser des paramètres pour remplacer une valeur constante par une valeur dynamique. Vous pouvez ensuite mettre à jour le paramètre dans le classeur pour modifier la connexion. Par exemple, vous pouvez vous connecter à une requête SQL personnalisée qui fournit les données de trafic Web d'une page particulière spécifiée par une valeur pageID. Au lieu d'utiliser une constante pour la valeur pageID de la requête SQL, vous pouvez insérer un paramètre. Une fois la connexion terminée, vous pouvez afficher une commande de paramètre dans le classeur. Utilisez la commande de paramètre pour changer le paramètre pageID et insérer des données pour chaque page pertinente sans avoir à modifier ou dupliquer la connexion.

Dans Tableau Desktop, vous pouvez créer un paramètre directement dans la boîte de dialogue SQL personnalisé ou utiliser n'importe quels paramètres faisant partie du classeur. Si vous créez un paramètre, celui-ci devient disponible dans le classeur, comme tout autre paramètre. Consultez Créer des paramètres pour en savoir plus.

Pour la création Web (dans Tableau Online ou Tableau Server), vous pouvez utiliser un paramètre existant publié depuis Tableau Desktop. Vous ne pouvez pas créer un nouveau paramètre dans la création Web.

Pour ajouter un paramètre à une requête SQL personnalisée

  1. Dans le canevas de la page de la source de données, pointez la table jusqu'à ce que l'icône de modification apparaisse, puis cliquez sur le bouton de modification.

  2. En bas de la boîte de dialogue, cliquez sur Insérer le paramètre.

  3. Sélectionnez une valeur constante dans l'instruction SQL, puis sélectionnez le paramètre que vous souhaitez utiliser à la place dans le menu déroulant Insérer le paramètre. Si vous n'avez pas encore créé de paramètre, sélectionnez Créer un paramètre. Suivez les instructions fournies dans Créer des paramètres pour créer un paramètre.

Remarque : Les paramètres ne peuvent remplacer que des valeurs littérales. Ils ne peuvent remplacer ni des expressions ni des identifiants comme des noms de table.

Dans l'exemple ci-dessous, la requête SQL personnalisée renvoie toutes les commandes associées à la priorité Urgent. Dans l'instruction SQL personnalisée, la priorité de la commande est la valeur constante. Si vous souhaitez changer la connexion pour visualiser les commandes ayant une priorité High, vous devez modifier la source de données.

Au lieu de créer et de gérer plusieurs variantes de la même requête, vous pouvez remplacer la constante de la priorité de commande par un paramètre. Celui-ci doit contenir toutes les valeurs possibles pour Priorité de commande.

Une fois le paramètre créé, vous pouvez l'insérer dans l'instruction SQL pour remplacer la valeur constante.

Une fois que vous avez modifié la connexion, le nouveau paramètre est répertorié dans la zone Paramètres en bas du volet Données ; la commande de paramètre s'affiche sur le côté droit de la vue. La connexion est mise à jour à mesure que vous sélectionnez différentes valeurs.

Remarque : Si vous utilisez un extrait, vous devez l'actualiser pour qu'il reflète les modifications apportées au paramètre. La publication d'une source de données qui utilise des paramètres SQL personnalisé contient les paramètres. Ceux-ci sont transférés dans tous les classeurs qui se connectent à la source de données.

Consultez également

Utiliser SQL personnalisé et RAWSQL pour effectuer des analyses avancées de données spatiales

Nous vous remercions de votre participation ! Une erreur s'est produite lors de l'envoi de vos commentaires.