Les data analysts exploitent SQL pour extraire, filtrer et transformer des données rapidement et précisément. Maîtriser les principales requêtes SQL permet de manipuler efficacement de larges bases de données. Découvrez les fondamentaux indispensables à toute analyse pointue et opérationnelle.
3 principaux points à retenir.
- SELECT, WHERE, ORDER BY : pour extraire et filtrer précisément les données.
- GROUP BY, HAVING : pour agréger et filtrer les groupes de données selon des conditions.
- JOIN, UNION, fonctions avancées : pour combiner, transformer et analyser les données complexes.
Comment extraire et filtrer les données efficacement en SQL
La commande SELECT est l’arme secrète des data analysts. C’est grâce à elle qu’on peut extraire avec précision les colonnes dont on a besoin, ou toutes les données d’une table. Vous souhaitez récupérer les noms et salaires de vos employés ? C’est simple. Voici comment faire :
SELECT name, salary FROM employees;
Avec cette simple ligne, vous obtenez exactement ce qu’il vous faut, sans le superflu. Maintenant, si vous voulez aller plus loin et ne garder que ceux qui travaillent dans le département « Marketing », il vous suffit d’ajouter une condition grâce à WHERE. Ce mot clé permet de filtrer les lignes selon des critères spécifiques :
SELECT * FROM employees WHERE department = 'Marketing';
Cette requête vous donnera tous les employés de ce département. Mais que faire si vous voulez classer ces données par salaire ? Là, ORDER BY entre en jeu. En ajoutant cette clause, vos résultats seront triés en fonction des salaires, soit croissant, soit décroissant :
SELECT name, salary FROM employees WHERE department = 'Marketing' ORDER BY salary DESC;
Et que dire de LIMIT ? Ce dernier est parfait lorsque vous traitez de grandes tables et que vous n’avez besoin que des X premiers résultats. Imaginez que vous vouliez voir les cinq employés les mieux rémunérés :
SELECT name, salary FROM employees ORDER BY salary DESC LIMIT 5;
Cela vous donnerait un aperçu rapide des meilleurs salaires sans avoir à trier toute la table. Ces commandes combinées permettent de filtrer et trier les données de manière efficace, ce qui est un atout majeur dans n’importe quelle analyse. En étant capable de rapidement isoler les données pertinentes, vous pouvez transformer une mer d’informations brutes en insights exploitables. C’est l’un des avantages incontournables du SQL pour un data analyst.
Quelles techniques pour synthétiser et regrouper des données en SQL
Organiser et synthétiser des données est un art essentiel pour tout analyste de données. C’est là que la magie de GROUP BY intervient. En regroupant les données par colonnes communes, on peut non seulement structurer l’information, mais aussi tirer des insights précieux. Par exemple, imaginons que nous souhaitons connaître le salaire moyen par département dans une entreprise. Voici comment procéder :
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
Ce simple morceau de code nous fournit la moyenne des salaires, regroupés par département. Mais cela ne s’arrête pas là. Les fonctions d’agrégation telles que SUM(), AVG(), COUNT(), MIN() et MAX() enrichissent nos requêtes en nous permettant de résumer efficacement les données.
- SUM() : addition des valeurs d’une colonne. Ex : total des salaires dans chaque département.
- AVG() : calcul de la moyenne des valeurs d’une colonne.
- COUNT() : compte le nombre de lignes ou d’entrées. Idéal pour savoir combien d’employés sont dans chaque département.
- MIN() : retourne la plus petite valeur d’une colonne.
- MAX() : indique la plus grande valeur d’une colonne.
Après avoir regroupé nos données, nous pourrions vouloir appliquer des filtres sur ces groupes, par exemple, ne garder que les départements ayant plus de 10 employés. C’est ici que HAVING entre en scène. Contrairement à WHERE qui filtre les lignes avant l’agrégation, HAVING fait cela après :
SELECT department, COUNT(*) AS num_employees
FROM employees
GROUP BY department
HAVING COUNT(*) > 10;
Afin de mieux comprendre ces concepts, voici un tableau récapitulatif :
| Critère | Utilisation |
|---|---|
| WHERE | Filtre les lignes avant l’agrégation. |
| HAVING | Filtre les groupes après l’agrégation. |
Ces outils, GROUP BY et HAVING, sont cruciaux pour transformer des ensembles de données complexes en informations exploitables. C’est votre passeport pour une analyse plus robuste et pertinente dans le vaste monde des données.
Pour approfondir vos connaissances sur les requêtes SQL indispensables, n’hésitez pas à consulter cet article passionnant sur les 10 requêtes MySQL à connaître absolument.
Comment combiner, transformer et enrichir les données avec SQL avancé
Lorsqu’il s’agit d’exploiter pleinement le potentiel de la base de données, savoir comment combiner, transformer et enrichir les données est un must-have pour tout data analyst. Commençons avec les JOINs. Ces requêtes nous permettent de fusionner plusieurs tables sur des clés communes. Par exemple, imaginez un tableau d’employés et un tableau de départements. Avec une simple jointure, il est possible de s’assurer que côté « employés », on voit non seulement les noms, mais aussi les départements auxquels ils appartiennent.
SELECT e.name, d.name AS department
FROM employees e
JOIN departments d ON e.dept_id = d.id;
Ensuite, parlons de UNION et UNION ALL. Ce sont des outils puissants pour fusionner les résultats de multiples requêtes distinctes. L’une des plus grandes distinctions réside dans le fait que UNION élimine les doublons, tandis que UNION ALL les conserve. Si vous voulez une liste de tous les noms d’employés et de clients, sans doublons, voici comment faire :
SELECT name FROM employees
UNION
SELECT name FROM customers;
Ensuite, n’oublions pas les fonctions de manipulation de chaînes. Avec CONCAT, vous pouvez assembler des prénoms et des noms, tandis que LENGTH vous donne la taille des chaînes. Par exemple :
SELECT CONCAT(first_name, ' ', last_name) AS full_name, LENGTH(first_name) AS name_length
FROM employees;
Les dates et heures ne sont pas en reste. Les fonctions comme DATEDIFF et CURRENT_DATE permettent d’effectuer des calculs temporels fondamentaux, tels que le temps passé dans une entreprise :
SELECT name, hire_date, DATEDIFF(CURRENT_DATE, hire_date) AS days_at_company
FROM employees;
Les conditions avec CASE ne manquent pas d’intérêt ; elles permettent d’ajouter des colonnes conditionnelles dynamisant encore davantage vos requêtes :
SELECT name,
CASE
WHEN age
Pour gérer les valeurs manquantes, le mot clé COALESCE fait des merveilles. Il renvoie la première valeur non nulle d'une liste :
SELECT name, COALESCE(phone, 'N/A') AS contact_number FROM customers;
Enfin, les sous-requêtes et les fonctions de fenêtre comme RANK et OVER offrent des opportunités d'analyse avancées. Ces techniques vous permettent de réaliser des comparaisons dynamiques et de classer les données avec une flexibilité sans égale :
SELECT name, salary, RANK() OVER (ORDER BY salary DESC) AS salary_rank FROM employees;
Comme vous pouvez le constater, la puissance de SQL dans le cadre de l'analyse de données réside dans sa capacité à combiner et enrichir les données de manière efficace. Si vous souhaitez approfondir l’optimisation de vos requêtes SQL, jetez un œil ici.
Comment maîtriser ces requêtes transforme-t-il votre pratique d’analyse SQL ?
Maîtriser ces requêtes SQL essentielles libère toute la puissance des bases de données et fait gagner un temps précieux aux data analysts. Cela vous permet d’extraire des données ciblées, de synthétiser des volumes importants, et de manipuler des jeux complexes pour des analyses fines et fiables. En bétonnant vos compétences SQL, vous gagnez en autonomie et précision, deux piliers indispensables pour des décisionnels solides et agiles. Le vrai bénéfice : transformer des données brutes en insights opérationnels clairs et actionnables, sans perte de temps ni approximations.
FAQ
Quelles sont les requêtes SQL indispensables pour un data analyst?
Comment filtrer des données dans SQL ?
À quoi servent les fonctions d’agrégation en SQL?
Quand utiliser JOIN et UNION dans SQL ?
Comment gérer les valeurs manquantes en SQL?
A propos de l'auteur
Franck Scandolera cumule plus de dix ans d'expérience dans la data analytics et l’ingénierie des données, formant et accompagnant des professionnels à travers la France et l’Europe francophone. Expert reconnu en SQL, automatisation et IA appliquée, il dirige l’agence webAnalyste et s’appuie sur une maîtrise pointue des outils et langages clés pour rendre accessible et efficace l’exploitation des données. Sa pédagogie repose sur des cas concrets et la rigueur technique, pour que chaque expert ou néophyte devienne performant dans ses analyses.
⭐ Expert et formateur en Tracking avancé, Analytics Engineering et Automatisation IA (n8n, Make) ⭐
Ref clients : Logis Hôtel, Yelloh Village, BazarChic, Fédération Football Français, Texdecor…
Mon terrain de jeu :
Data & Analytics engineering : tracking propre RGPD, entrepôt de données (GTM server, BigQuery…), modèles (dbt/Dataform), dashboards décisionnels (Looker, SQL, Python).
Automatisation IA des taches Data, Marketing, RH, compta etc : conception de workflows intelligents robustes (n8n, Make, App Script, scraping) connectés aux API de vos outils et LLM (OpenAI, Mistral, Claude…).
Engineering IA pour créer des applications et agent IA sur mesure : intégration de LLM (OpenAI, Mistral…), RAG, assistants métier, génération de documents complexes, APIs, backends Node.js/Python.






