Bienvenue à la troisième édition de Sunday Select Star!
Nous sommes désormais plus de 350 abonnés. Merci beaucoup pour votre soutien!
Après deux éditions orientées métier, aujourd’hui je vous propose un sujet technique.
Nous allons parler de SQL pour bien mériter le nom de cette newsletter 😁
Tout d’abord pourquoi ce sujet?
Le site https://datanerd.tech/, créé par le Youtuber Luke Barousse, analyse des dizaines de milliers d’offres d'emploi à travers le monde. Le résultat montre que près de 50% des postes de Data Analyst en France exigent la maîtrise du SQL. Cela place le SQL au rang numéro 1 des compétences essentielles pour Data Analyst.
Je vais vous partager des connaissances en SQL que vous devriez avoir pour exercer en tant que Data Analyst, et je fournirai quelques ressources que j’utilisent encore aujourd’hui pour m’exercer et monter en compétences.
Les commandes suivantes devraient couvrir 95% des tâches quotidiennes d'un Data Analyst.
Pour certaines, je vous fournirai des exemples supplémentaires que j'ai déjà publiés ici et là sur LinkedIn. N'hésitez pas à les enregistrer pour plus tard !
Cela peut être divisé en trois parties :
Basique
Compréhension générale des bases de données (bases de données relationnelles, schémas, clé primaire, clé étrangère).
Connaissance des types de données : ce que c’est un varchar, numeric, boolean et date.
Connaissance des opérateurs : =, <, >, <>…
Syntaxe de base :
SELECT, FROM
Filtrage : WHERE
Opérateurs logiques : LIKE, IN, BETWEEN, IS NULL, AND, OR, NOT
Tri et affichage des données : ORDER BY, LIMIT, OFFSET. Découvrez une astuce sympa avec ORDER BY dans ce post.
Regroupement : GROUP BY, HAVING. À ce niveau, c’est important de comprendre la différence entre WHERE et HAVING.
Agrégations : SUM, COUNT, AVG, MIN, MAX, DISTINCT
Intermédiaire
JOINs : INNER JOIN, LEFT JOIN, FULL OUTER JOIN, CROSS JOIN, SELF JOIN. J’exclus RIGHT JOIN exprès parce qu’en pratique, elle est presque jamais utilisée.
Opérations ensemblistes : UNION, UNION ALL, INTERSECT, EXCEPT.
Quelle est la différence entre UNION et UNION ALL? (Exemple dans ce post)Gestion des valeurs nulles : ISNULL, NULLIF, COALESCE. Exemple dans ce post.
Changement de type de données avec CAST : pratique pour convertir les string à integer ou string à date.
Logique conditionnelle avec CASE.
Combiner CASE avec des agrégations : SUM, COUNT, AVG, MIN, MAX, DISTINCT.
Par exemple :COUNT(CASE WHEN status=’complete’ THEN transaction_id END)
- cela compte le nombre de transaction complétée.Contrairement à ce que l’on pense, CASE n’est pas utilisé uniquement dans SELECT. Mon carousel parle de ces cas d’utilisation.
Format de date : DATE_ADD, DATE_DIFF, DATE_PART, DATE_TRUNC
Avancé
CTEs et sous requêtes.
Dans la réalité, les CTEs sont beaucoup plus utilisées en raison de leur lisibilité et maintenabilité. Voir plus de raisons pourquoi les CTEs sont à privilégier dans ce post.
Les sous-requêtes sont rarement utilisées, sauf pour de très petites requêtes comme
SELECT col FROM table
dans la clause WHERE de la requête principale.
Agrégats récapitulatifs: GROUPING SETS, ROLLUP, CUBE.
Fonctions sur les chaînes de caractères : SPLIT_PART, CONCAT, LENGTH, TRIM, REGEXP_COUNT, LOWER, SUBSTRING… Ce carousel vous fournira quelques exemples de ces commandes.
FONCTIONS DE FENÊTRAGE :
Syntaxe de base des fonctions de fenêtrage avec SUM, COUNT, AVG. Exemple: faire la somme cumulée.
OVER
PARTITION BY qui divise la fenêtre
ORDER BY qui trie la fenêtre.
ROWS BETWEEN pour déterminer le nombre de lignes à inclure
RANK, DENSE_RANK, ROW_NUMBER, NTILE, QUALIFY. Exemple de QUALIFY dans ce post.
LAG, LEAD : trouver les valeurs précédentes et suivantes. Exemple dans ce post.
FIRST_VALUE, LAST_VALUE : trouver la première et la dernière valeur dans une fenêtre. Exemple dans ce post.
Alias WINDOW : pratique pour réutiliser une fenêtre plusieurs fois.
PIVOT, UNPIVOT
Je n’ai pas mentionné exprès toute une partie pour créer, modifier, supprimer une table car cela concerne seulement les Data Analysts qui travaillent dans le développement de bases de données ou la mise à disposition des données.
Alors que la plupart ne requêtent que des données dans les tables.
Les ressources que je recommande:
Il existe pleines de ressources en ligne, mais pourquoi je vous recommande celles-ci?
Maîtriser SQL, ce n'est pas seulement connaître une liste de commandes, c'est comprendre comment appliquer ces commandes efficacement pour résoudre des problèmes concrets.
Ces plateformes se distinguent parce qu'elles offrent bien plus que la simple mémorisation de syntaxes. Elles engagent l'utilisateur dans des scénarios d'application réels venant de divers secteurs tels que le Retail, l'E-commerce, le Marketing Digital, les Médias et la Finance.
Chaque problème ou projet proposé est conçu pour simuler des défis auxquels les Data Analysts sont confrontés quotidiennement, vous permettant ainsi de développer une compréhension profonde et pratique du SQL. En travaillant à travers ces scénarios, vous apprendrez non seulement à écrire des requêtes efficaces mais aussi à raisonner dans un contexte réel.
Conclusion
J'espère que ce petit guide vous sera utile pour rester concentré sur l'essentiel de SQL. N'hésitez pas à pratiquer sur les sites mentionnés ci-dessus pour monter en compétences. Ces ressources m'ont beaucoup aidé, et j'espère qu'elles vous seront également bénéfiques.
Je voudrais également créer une cheat sheet regroupant toutes ces commandes SQL, condensées sur une seule page, accompagnées de liens vers la documentation et des exercices pratiques que vous pouvez appliquer immédiatement.
Car, quoi qu'on en dise, il ne sert à rien de simplement survoler sans mettre la main à la pâte.
L'ambition est que cette cheat sheet devienne votre Notion en SQL.
Seriez-vous intéressés par ce document ?
Voilà c’est tout pour aujourd’hui.
Si vous avez apprécié ces partages, un petit coeur, ça fait toujours plaisir!
A la prochaine fois!
Merci beaucoup pour cette liste de ressources ! C’est exactement ce que je cherchais pour approfondir mes compétences en SQL de manière pratique et concrète.