Retour à la liste des articles Articles
12 minutes de lecture

Ces requêtes SQL vous aideront dans l'analyse des données

Vous avez besoin de rationaliser vos tâches quotidiennes d'analyse de données ? Cet article explique comment les requêtes SQL de base peuvent vous aider.

Si vous envisagez une carrière en entreprise ou dans un domaine qui implique de travailler avec des données, vous avez certainement déjà rencontré SQL, ou Structured Query Language (langage de requête structuré). Le langage SQL a été développé pour la première fois dans les années 1970 et continue d'être la norme industrielle pour les interactions avec les bases de données. Nombre d'entre vous ont peut-être déjà décidé d'apprendre ce langage, compte tenu de sa puissance. Ou peut-être vous demandez-vous s'il vaut la peine de l'apprendre.

Le langage SQL est certainement l'une des compétences les plus précieuses pour les chercheurs d'emploi. Pour des postes tels que ceux d'analyste ou d'ingénieur en données, le langage SQL est votre pain quotidien. Pour d'autres postes, il peut sembler moins nécessaire. Cependant, je suis convaincu que l'apprentissage du langage SQL vous donne une longueur d'avance dans le travail avec les données, ce qui rendra vos décisions commerciales plus solides. Il vous permettra d'analyser aisément de grands volumes de données et de présenter vos résultats de manière succincte à n'importe quel public.

Dans cet article, j'aborderai les requêtes et les constructions SQL de base qui vous permettront de répondre à vos besoins en matière d'analyse de données. Mais avant d'entrer dans le vif du sujet, laissez-moi vous expliquer ce qu'est le langage SQL et ses applications générales.

Qu'est-ce que le langage SQL ?

Le langage SQL est un langage standard permettant d'accéder aux bases de données et de les manipuler. En bref, il vous aide à "parler" à votre base de données.

Vous pouvez l'utiliser pour récupérer des informations déjà stockées dans la base de données, créer de nouvelles tables et stocker ou mettre à jour des données selon vos besoins. Cela semble simple, n'est-ce pas ? C'est vrai. Mais c'est là que réside sa puissance : Il est simple, mais il produit des résultats très utiles.

Lesorganisations qui adoptent une approche centrée sur les données pour prendre leurs décisions commerciales prospèrent. Et si vous présentez vos idées à l'aide d'une analyse de données, vous avez beaucoup plus de chances d'obtenir l'adhésion de vos parties prenantes. En fait, chaque entreprise a besoin de l'analyse des données sous une forme ou une autre pour se développer.

Le langage SQL permet d'analyser les données en toute transparence. Il peut être utilisé pour d'innombrables applications liées aux données, quel que soit le domaine - technique, RH, finance, marketing, ventes - ou la taille de l'entreprise. Par exemple, SQL peut vous aider à

  • Analyser les données des clients et générer des informations sur leur comportement.
  • Analyser vos données PnL pour révéler vos plus gros postes de dépenses.
  • Effectuer des analyses financières générales.
  • Comprendre quels sont les départements dont la masse salariale et la main-d'œuvre sont les plus coûteuses.
  • Identifier les domaines de vos opérations qui comportent le plus d'erreurs ou d'inefficacités.
  • Identifier les vendeurs, les magasins, les sites, les régions, etc. les plus performants.
  • Analyser les goulets d'étranglement de votre site web et d'autres tâches liées aux données.

Bien entendu, il ne s'agit là que de quelques exemples. En réalité, cette liste est presque infinie. Si vous êtes propriétaire ou directeur d'une entreprise, vous voudrez peut-être même que vos employés apprennent le langage SQL ou que vous intégriez des cours sur le langage SQL dans votre processus d'intégration. À tout le moins, vous voudrez probablement apprendre SQL vous-même afin de pouvoir prendre des décisions fondées sur des données.

Maintenant que vous avez une idée de ce qu'est le langage SQL et de la manière dont il peut être utilisé, nous allons nous plonger dans quelques requêtes de base pour vous aider à démarrer vos tâches d'analyse de données.

Constructions et requêtes SQL de base

Il existe beaucoup plus de clauses et de fonctions SQL que nous ne pouvons en couvrir dans cet article, mais les clauses et fonctions suivantes constituent la base de la plupart des requêtes SQL.

Par ailleurs, les exemples cités ici sont construits sur un ensemble de données limité. En réalité, vous travaillerez avec des milliers de lignes et de nombreuses tables. Ne vous inquiétez pas, les concepts restent les mêmes quelle que soit la quantité de données. Ces requêtes de base fonctionneront sur n'importe quelle table de la base de données. En fait, l'un des principaux facteurs de différenciation du langage SQL est son évolutivité, qui le distingue d'Excel et d'autres outils similaires.

Voici les éléments de base d'une requête SQL :

1. SELECT et FROM

Le mot-clé SELECT est utilisé pour extraire des données de la base de données. Vous pouvez spécifier les noms des colonnes (c'est-à-dire le type de données que vous voulez voir, comme le nom ou l'âge du client), ou vous pouvez voir toutes les données de la table.

Le mot-clé FROM indique la ou les tables à partir desquelles les données doivent être extraites. Par exemple, supposons que vous souhaitiez obtenir une liste de tous les clients de votre base de données avec leur nom et leur adresse électronique. Ces informations se trouvent dans la table Customers présentée ci-dessous :

Customer_IDCustomer_NameEmailCityCountryAgeSex
1211Antonioxxxx@xxxx.comParisFR32Male
1212Paulineyyyy@yyyy.comLondonUK42Female
1213Matteozzzz@zzzz.comNew YorkUS28Male
1214Sethaaa@bb.comSydneyAU32Male
1215Agathabbb@ccc.comWashington DCUS24Female

Voici la requête que nous utiliserions pour obtenir une liste de tous les noms de clients avec leur adresse électronique :

SELECT Customer_Name, Email
FROM Customers;

Et le résultat :

Customer_NameEmail
Antonioxxxx@xxxx.com
Paulineyyyy@yyyy.com
Matteozzzz@zzzz.com
Sethaaa@bb.com
Agathabbb@ccc.com

Pour en savoir plus sur SELECT, consultez le cours SQL pour les débutants et dans l'article How Do You Write a SELECT Statement in SQL, qui comprend de nombreux exemples.

2. OÙ (WHERE)

Supposons que vous gériez un site de commerce électronique proposant une promotion pour les clients américains. Dans ce cas, vous souhaitez envoyer un courrier électronique uniquement aux clients américains ; la liste que vous souhaitez sélectionner ne doit contenir que des clients américains. C'est à ce moment-là que vous pouvez utiliser la clause WHERE.

Ainsi, si vous utilisez cette requête ...

SELECT Customer_Name, Email
FROM Customers
WHERE Country =  'US';

... vous obtiendrez les résultats suivants :

Customer_NameEmail
Matteozzzz@zzzz.com
Agathabbb@ccc.com

La clause WHERE est utilisée pour filtrer des lignes spécifiques en fonction de la valeur d'une ou de plusieurs colonnes (dans ce cas, il s'agit de la colonne Country, qui n'apparaît pas dans les résultats).

Supposons maintenant que vous ne souhaitiez répertorier que les femmes originaires des États-Unis. Vous pouvez filtrer plusieurs conditions dans WHERE en utilisant le mot-clé AND:

SELECT Customer_Name, Email
FROM Customers
WHERE Country = 'US'
AND Sex = 'FEMALE';

Voici le résultat :

Customer_NameEmail
Agathabbb@ccc.com

Dans la requête ci-dessus, la valeur de Country et Sex pour chaque ligne est évaluée par rapport aux conditions de la clause WHERE. Seules les lignes pour lesquelles les deux conditions sont vraies seront renvoyées. Si vous souhaitez renvoyer les résultats lorsque l'une ou l'autre des conditions WHERE est vraie, utilisez le mot-clé OR:

SELECT Customer_Name, Email
FROM Customers
WHERE Country = 'US'
OR Sex = 'FEMALE';

Cela permet de sélectionner tous les clients de sexe féminin ainsi que tous les clients résidant aux États-Unis. Remarquez la différence dans les résultats :

Customer_NameEmail
Paulineyyyy@yyyy.com
Matteozzzz@zzzz.com
Agathabbb@ccc.com

Vous avez besoin de plus de ressources sur la clause WHERE? Consultez ces articles :

3. ORDER BY

Supposons que vous ayez une autre table dans votre base de données appelée la table Orders dans votre base de données.

Order_IdItemQuantityCustomer_IdTotal_Value
23A62411212$100
22Ae3431213$210
13A21141213$249
11AXXX41212$212

Vous voulez voir les commandes les plus importantes et leurs détails. Une façon d'y parvenir est de lister les commandes par ordre décroissant (10-1, Z-A) en fonction de leur valeur. Vous pouvez utiliser une requête de ce type :

SELECT *
FROM Orders
ORDER BY Total_Value DESC;

Et vous obtiendrez :

Order_IdItemQuantityCustomer_IdTotal_Value
13A21141213$249
11AXXX41212$212
22Ae3431213$210
23A62411212$100

L'utilisation d'un "*" après SELECT indique au moteur SQL de récupérer toutes les colonnes d'une table. La clause ORDER BY indique que les résultats doivent être affichés dans un ordre particulier. Par défaut, les résultats sont affichés dans l'ordre croissant (1-10, A-Z) ; cependant, comme nous mentionnons explicitement le mot-clé DESC, nos résultats sont affichés dans l'ordre décroissant.

Pour en savoir plus, consultez l'excellent Guide détaillé de SQL ORDER BY.

4. CASE

En règle générale, la table d'une entreprise contient des milliers de lignes. Orders table. Il se peut que vous ne souhaitiez pas toujours connaître la valeur totale de chaque commande. Au lieu de cela, vous souhaitez peut-être les classer en fonction de leur valeur ou d'une autre logique.

Si vous souhaitez classer les commandes en valeur "élevée" ou "faible" - selon que la valeur de la commande est supérieure ou inférieure à 150 $ - vous pouvez utiliser la construction CASE:

SELECT Order_Id, Total_Value
       CASE WHEN Total_value > 150 THEN 'HIGH' 
            WHEN Total_value < 150 THEN 'LOW' 
            ELSE 'MEDIUM' END as Order_Category
FROM Orders;

Voici ce que vous obtiendrez :

Order_IdTotal_ValueOrder_Category
13$249HIGH
11$212HIGH
22$210HIGH
23$100LOW

Dans cette requête, chaque ligne est évaluée par la fonction CASE. Les lignes se voient attribuer une catégorie en fonction de la première condition (c'est-à-dire WHEN .. THEN ..) qui s'avère vraie. Étant donné que les commandes portant les identifiants 13, 11 et 22 sont supérieures à 150 dollars, elles sont classées dans la catégorie "ÉLEVÉ". L'ordre portant l'ID 23 est classé "BAS".

Le site ELSE spécifie une valeur de retour par défaut si aucune des conditions n'est évaluée comme vraie pour une ligne quelconque.

Sur le blog LearnSQL.fr, nous avons plusieurs articles intéressants sur l'utilisation de CASE dans les requêtes SQL. En voici quelques-uns :

5. GROUP BY

Souvent, pour obtenir des informations à partir de grands ensembles de données, nous voulons regrouper des éléments similaires. Nous pouvons utiliser ces informations pour prendre des décisions éclairées ; le regroupement des données nous aide à trouver des modèles, des comportements ou des mesures. Ce regroupement est appelé agrégation ; il peut être réalisé à l'aide de la clause SQL GROUP BY.

Vous utilisez généralement une fonction pour calculer la métrique du groupe. Les fonctions d'agrégation couramment utilisées sont SUM(), COUNT(), AVG(), MAX(), et MIN(). Elles permettent de réaliser de nombreuses opérations, par exemple le calcul des dépenses totales d'un département ou le comptage du nombre d'employés dans chaque site.

Supposons que votre entreprise propose une offre consistant à envoyer un cadeau gratuit au client qui dépense le plus sur votre site web. Vous pouvez utiliser la clause SQL GROUP BY ici pour récupérer le meilleur client en termes de valeur totale de la commande. Voici la requête :

SELECT Customer_Id, SUM(Total_Value)
FROM Orders
GROUP BY Customer_Id
ORDER BY 2 DESC;

Voici le résultat :

Customer_IdSUM(Total_Value)
1213$459
1212$312

Il est clair que votre meilleur client est Customer_Id 1213.

La requête fonctionne en sélectionnant d'abord toutes les valeurs uniques de Customer_Id, puis en utilisant GROUP BY pour trouver la somme totale agrégée pour chacun (c'est-à-dire la valeur totale de toutes leurs commandes). La clause ORDER BY 2 DESC affiche les résultats dans l'ordre décroissant de SUM(Total_Value).

Pour plus d'informations sur le GROUP BY dans l'analyse des données, consultez la rubrique Qu' est-ce que le GROUP BY en SQL ?

6. JOINDRE

Dans l'exemple précédent, nous avons trouvé le site Customer_id du client le plus dépensier. Mais la table Orders ne contient pas d'autres informations sur le client, telles que son nom ou ses coordonnées. Vous devez écrire une autre requête dans la table Customers pour récupérer les données requises - ou vous pouvez simplement utiliser la fonction JOIN.

La fonction SQL JOIN vous permet de sélectionner des informations dans plusieurs tables en une seule requête. En règle générale, vous reliez deux tables sur la base d'une ou plusieurs valeurs de colonne communes aux deux tables.

Dans notre cas, nous pouvons utiliser Customer_Id comme champ commun. Il joindra les tables Customers et Orders et les tables :

SELECT b.Customer_Name, b.Email, a.Customer_Id, SUM(Total_Value)
FROM Orders a
JOIN Customers b
ON a.Customer_id = b.Customer_Id
GROUP BY b.Customer_Name, b.Email, a.Customer_Id
ORDER BY 4 DESC;

Voici le résultat :

Customer_NameEmailCustomer_IdSUM(Total_Value)
Matteozzzz@zzzz.com1213$459
Paulineyyyy@yyyy.com1212$312

La requête renvoie également les informations sur le client dont vous aviez besoin. Elle compare les champs Customer_Id des deux tables et ne récupère que les lignes dont les valeurs correspondent. Remarquez que les identifiants des clients 1211, 1214 et 1215 ne figurent pas dans les résultats ; il n'y avait pas de lignes correspondantes dans la table Orders pour ces valeurs.

Si vous souhaitez afficher toutes les valeurs, même celles qui n'ont pas de correspondance dans l'autre table, vous pouvez utiliser ce que l'on appelle une JOINTE OUTER. Les jointures peuvent être quelque peu difficiles à comprendre, mais elles constituent l'un des concepts les plus importants du langage SQL. N'hésitez pas à consulter ce cours sur Les jointures en SQL. Il propose 93 exercices couvrant tous les types de JOIN (il y en a plusieurs).

Prochaines étapes pour apprendre l'analyse de données SQL

J'espère que ces requêtes vous ont donné suffisamment d'idées pour commencer à analyser des données en utilisant SQL. Si vous ne comprenez pas parfaitement les requêtes, ne vous inquiétez pas. Vous pouvez suivre notre coursSQL pour les débutants pour les pratiquer, ou notre parcours d'apprentissage complet Le SQL de A à Z pour obtenir une vue d'ensemble de ce que ce langage peut faire. Le but ultime n'est pas seulement d'apprendre le langage SQL, mais de l'utiliser dans votre travail quotidien et de prendre l'habitude d'utiliser l'analyse des données pour prendre des décisions.

Les exemples que je vous ai montrés sont bien sûr très simples. Je voulais simplement que vous compreniez les principaux concepts et que vous constatiez à quel point il est facile de créer des requêtes SQL. Le moment venu, vous apprendrez à créer des requêtes plus sophistiquées. Elles vous faciliteront le travail et susciteront peut-être même l'admiration générale de vos collègues (ou de votre patron). Connaître le langage SQL, c'est génial !

Une fois que vous aurez appris les bases du langage SQL, posez-vous les questions suivantes lorsque vous vous préparez à prendre une décision commerciale :

  1. De quelles données ai-je besoin pour étayer ou faciliter ma décision ?
  2. Ces données se trouvent-elles déjà dans ma base de données ?
  3. Si oui, comment puis-je extraire et présenter les données afin qu'elles m'aident à prendre ma décision ?

Le fait d'être axé sur les données est un trait de caractère qui s'inculque avec la pratique. Alors, continuez à pratiquer et à apprendre !