Apprendre le SQL pour le comprendre, pas juste pour que ça tourne AccÚs direct : modai-lab.com


Pourquoi ce guide existe

Laisser l'IA Ă©crire tes requĂȘtes, c'est tentant. En rĂ©union, tu dois expliquer ce que tu fais. DĂ©fendre tes choix. Corriger en live. Comprendre les erreurs.

Des juniors se retrouvent bloquĂ©s parce qu'ils ne savent plus ce que leur propre requĂȘte fait.

Modai Lab est construit pour Ă©viter ça : une plateforme qui t'entraĂźne sur des cas business rĂ©els, oĂč Claude explique chaque concept au lieu de juste Ă©crire Ă  ta place.

Ce que tu vas trouver dans ce guide :

  • Comment dĂ©marrer sur Modai Lab en moins de 10 minutes

  • Les 4 domaines mĂ©tiers disponibles (sales, RH, finance, e-commerce)

  • Comment tirer le maximum du feedback IA Ă  chaque exercice

  • Un plan de progression selon ton niveau actuel


đŸ§Ș Commence par mesurer ton point de dĂ©part Avant de plonger dans les exercices, 5 minutes pour calibrer ton niveau. Le test adapte ensuite le parcours Ă  ton profil exact. 👉 Faire le test de niveau sur modai-lab.com/test-sql/ RĂ©sultat en direct · Niveau calibrĂ© · Parcours personnalisĂ©


PARTIE 1 — Pourquoi "comprendre" change tout


Le piĂšge de la requĂȘte copiĂ©e

-- Tu copies ça sur Stack Overflow :
SELECT DISTINCT u.id, u.nom, COUNT(o.id) AS nb_commandes
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.nom
HAVING COUNT(o.id) >
ORDER BY nb_commandes DESC;
 
-- En réunion, ton manager demande :
-- "Pourquoi tu uses DISTINCT ici ?"
-- "Pourquoi LEFT JOIN et pas INNER JOIN ?"
-- "Que se passe-t-il si on a des doublons dans orders ?"
guide-demarrage-modai-lab · 01

Si tu ne sais pas rĂ©pondre, tu as un problĂšme. Pas avec SQL — avec ta mĂ©thode d'apprentissage.


Ce que "comprendre" veut dire concrĂštement

Comprendre une requĂȘte, c'est savoir rĂ©pondre Ă  trois questions :

1. Pourquoi cette structure ?

LEFT JOIN → je veux tous les users, mĂȘme ceux sans commande
INNER JOIN → je veux seulement ceux qui ont commandĂ©
Pas les deux à la fois : choisir c'est comprendre l'intention métier
guide-demarrage-modai-lab · 02 · 1. Pourquoi cette structure ?

2. Que se passe-t-il si les données changent ?

Si un user a 2 commandes identiques (mĂȘme montant, mĂȘme date) :
→ Avec DISTINCT : est-ce qu'elles sont fusionnĂ©es ou pas ?
→ RĂ©ponse : DISTINCT sur (id, nom, COUNT) ne fait rien ici
→ Le vrai problĂšme est ailleurs — dans le modĂšle de donnĂ©es
guide-demarrage-modai-lab · 03 · 2. Que se passe-t-il si les données changent ?

3. Comment l'optimiser si ça rame ?

EXPLAIN ANALYZE te dit oĂč ça bloque
Un index sur orders.user_id change tout
Mais encore faut-il savoir lire le plan d'exécution
guide-demarrage-modai-lab · 04 · 3. Comment l'optimiser si ça rame ?

Modai Lab te force Ă  rĂ©pondre Ă  ces trois questions — pas juste Ă  produire un rĂ©sultat.


PARTIE 2 — Les 4 domaines mĂ©tiers de Modai Lab

Chaque domaine simule un contexte réel d'entreprise avec des données imparfaites, comme en production.


Domaine 1 — Sales (Ventes & CRM)

Contexte : tu es data analyst dans une équipe commerciale. Le directeur des ventes veut des réponses, pas des excuses.

Datasets disponibles :

  • deals : pipeline commercial (statut, montant, commercial, date de closing)

  • contacts : prospects et clients (secteur, taille, pays)

  • activities : appels, emails, rĂ©unions par deal

  • targets : objectifs mensuels par commercial

Exemples de questions posées :

-- "Quel est le taux de conversion par commercial ce trimestre ?"
-- Piùge : un deal peut changer de statut plusieurs fois → doublons potentiels
 
-- "Quels deals du pipeline ont plus de 30 jours sans activité ?"
-- PiĂšge : date de derniĂšre activitĂ© → NULL si aucune activitĂ© → gestion NULL
 
-- "Quel est le cycle de vente moyen par secteur ?"
-- Piùge : deals non conclus inclus dans la moyenne → biais
guide-demarrage-modai-lab · 05 · Exemples de questions posées :

Ce que tu apprends dans ce domaine :

  • Calculs de taux et de conversions avec le bon dĂ©nominateur

  • Gestion des NULL dans les dates et les statuts

  • FenĂȘtres analytiques pour les classements commerciaux


Domaine 2 — RH (Ressources Humaines)

Contexte : tu travailles pour la DRH. Les données sont sensibles, les erreurs ont des conséquences réelles.

Datasets disponibles :

  • employees : id, nom, poste, dĂ©partement, salaire, date_embauche, date_dĂ©part

  • absences : type, durĂ©e, employĂ©, dates

  • evaluations : scores annuels, commentaires, promotions

  • org_chart : hiĂ©rarchie (manager_id)

Exemples de questions posées :

-- "Calcule le taux de turnover par département sur 12 mois"
-- PiÚge : inclure les départs ET les effectifs de début de période
 
-- "Quels managers ont une équipe dont le salaire moyen est sous la médiane ?"
-- PiĂšge : mĂ©diane ≠ moyenne, PERCENTILE_CONT vs AVG
 
-- "Affiche l'organigramme complet d'un département"
-- PiĂšge : CTE rĂ©cursive sur manager_id → cycles potentiels
guide-demarrage-modai-lab · 06 · Exemples de questions posées :

Ce que tu apprends dans ce domaine :

  • Self JOIN pour les hiĂ©rarchies

  • CTE rĂ©cursives pour les organigrammes

  • Calculs de mĂ©diane et percentiles


Domaine 3 — Finance

Contexte : reporting financier. Un chiffre faux dans un rapport COMEX, c'est une décision à 6 chiffres sur du vent.

Datasets disponibles :

  • transactions : montant, type (dĂ©bit/crĂ©dit), compte, date, devise

  • budgets : lignes budgĂ©taires par dĂ©partement et trimestre

  • invoices : factures clients avec statuts (payĂ©e, en retard, litige)

  • exchange_rates : taux de change historiques

Exemples de questions posées :

-- "Calcule le budget consommé vs alloué par département"
-- Piùge : transactions multi-devises → convertir avant de sommer
 
-- "Identifie les factures en retard de plus de 60 jours"
-- PiĂšge : factures partiellement payĂ©es → solde restant, pas montant initial
 
-- "Reconstitue le P&L mensuel des 12 derniers mois"
-- PiÚge : biais de survivant sur les transactions annulées
guide-demarrage-modai-lab · 07 · Exemples de questions posées :

Ce que tu apprends dans ce domaine :

  • Jointures sur des pĂ©riodes de validitĂ© (prix historiques, taux de change)

  • Calculs de soldes cumulatifs avec window functions

  • Gestion des multi-devises et des corrections comptables


Domaine 4 — E-commerce

Contexte : startup en croissance. Les métriques growth sont scrutées chaque semaine.

Datasets disponibles :

  • users : inscription, source d'acquisition, segment

  • orders : commandes avec statuts (panier, payĂ©, livrĂ©, retournĂ©)

  • products : catalogue avec catĂ©gories, prix, stock

  • sessions : donnĂ©es analytics (source, device, pages vues)

Exemples de questions posées :

-- "Calcule le taux de rétention à J+30 par cohorte d'acquisition"
-- PiĂšge : date de cohorte = premier achat, pas inscription
 
-- "Quel est le taux de conversion par canal et par device ?"
-- PiĂšge : un user peut avoir plusieurs sessions → dĂ©nominateur Ă  dĂ©finir
 
-- "Identifie les produits avec un taux de retour > 15%"
-- PiÚge : retours sur commandes annulées vs retours réels
guide-demarrage-modai-lab · 08 · Exemples de questions posées :

Ce que tu apprends dans ce domaine :

  • Analyses de cohortes et de rĂ©tention

  • Calculs de taux avec dĂ©nominateurs prĂ©cis

  • FenĂȘtres analytiques pour les analyses temporelles


đŸ§Ș Choisis ton domaine et commence Les 4 domaines sont accessibles directement sur Modai Lab. Commence par celui qui correspond Ă  ton contexte mĂ©tier. 👉 AccĂ©der aux exercices sur modai-lab.com Sales · RH · Finance · E-commerce · Feedback instantanĂ©


PARTIE 3 — Comment tirer le maximum du feedback IA

Le feedback de Modai Lab ne dit pas juste "faux" ou "correct". Il explique.


Quand ta requĂȘte est correcte

Le feedback te pose quand mĂȘme des questions :

✅ Ta requĂȘte retourne le bon rĂ©sultat.
 
Maintenant :
→ Que se passe-t-il si on ajoute un index sur cette colonne ?
→ Peux-tu réécrire cette requĂȘte avec une CTE pour la rendre plus lisible ?
→ Quelle serait la version avec une window function ?
guide-demarrage-modai-lab · 09

L'objectif n'est pas juste d'avoir bon — c'est de comprendre pourquoi c'est bon et comment aller plus loin.


Quand ta requĂȘte est incorrecte

Le feedback identifie le type d'erreur, pas juste la ligne :

❌ Ta requĂȘte retourne 1 240 lignes, le rĂ©sultat attendu en compte 487.
 
Diagnostic :
→ Tu as un fan-out sur le JOIN avec la table orders
→ Chaque user avec 3 commandes apparaĂźt 3 fois dans ton rĂ©sultat
→ Le COUNT(DISTINCT user_id) cache le problùme sans le corriger
 
Piste de correction :
→ AgrĂšge d'abord dans une sous-requĂȘte ou une CTE
→ Ensuite joins le rĂ©sultat agrĂ©gĂ© Ă  la table users
guide-demarrage-modai-lab · 10

La méthode des 3 questions avant de soumettre

Avant de cliquer "Valider", pose-toi ces questions :

1. Quelle est la granularité attendue du résultat ?
→ Une ligne par user ? Par commande ? Par mois ?
→ Le nombre de lignes retournĂ©es correspond-il Ă  ça ?
 
2. Y a-t-il des NULL dans les données sources ?
→ Mes agrĂ©gations les gĂšrent-elles correctement ?
→ Mon COUNT() compte-t-il ce que je crois qu'il compte ?
 
3. Mon JOIN peut-il créer des doublons ?
→ Ai-je vĂ©rifiĂ© COUNT(*) vs COUNT(DISTINCT id) ?
guide-demarrage-modai-lab · 11

Utiliser le feedback pour progresser plus vite

AprĂšs chaque exercice :
 
□ Lis l'explication mĂȘme si ta requĂȘte Ă©tait correcte
□ Si tu avais tort, reproduis le bug volontairement pour comprendre
□ Reformule le problĂšme Ă  voix haute avant d'Ă©crire la requĂȘte
□ Note le pattern d'erreur dans ton carnet (fan-out, NULL, LEFT JOIN silencieux...)
□ Passe Ă  l'exercice suivant du mĂȘme domaine pour valider l'acquis
guide-demarrage-modai-lab · 12

PARTIE 4 — Le parcours de progression Modai Lab


Un parcours construit pour toi, pas pour tout le monde

La plupart des ressources SQL te donnent le mĂȘme contenu dans le mĂȘme ordre, peu importe ton niveau ou ton mĂ©tier. Modai Lab fonctionne diffĂ©remment.

À ton arrivĂ©e, la plateforme calibre deux choses :

  1. Ton niveau SQL rĂ©el — pas celui que tu penses avoir, celui que tes requĂȘtes rĂ©vĂšlent

  2. Ton contexte business — Sales, RH, Finance ou E-commerce

Ce calibrage génÚre un parcours sur mesure : les bonnes notions, dans le bon ordre, sur des données qui ressemblent à ce que tu manipules au travail.


La structure du parcours : des notions Ă  maĂźtriser avant de passer au suivant

Chaque parcours est découpé en blocs de notions. Un bloc = un ensemble de concepts liés qu'il faut maßtriser ensemble avant d'avancer.

BLOC 1 — Lire et filtrer les donnĂ©es
├── Notion 1.1 : L'ordre d'exĂ©cution SQL
├── Notion 1.2 : SELECT et les alias
├── Notion 1.3 : WHERE et ses opĂ©rateurs
└── Notion 1.4 : ORDER BY et LIMIT
↓ MaĂźtrisĂ© ? → AccĂšs au Bloc 2
 
BLOC 2 — Transformer les donnĂ©es en mĂ©triques
├── Notion 2.1 : GROUP BY et la rùgle des colonnes
├── Notion 2.2 : COUNT(*) vs COUNT(col) vs COUNT(DISTINCT)
├── Notion 2.3 : SUM, AVG, MIN, MAX — comportement avec NULL
└── Notion 2.4 : HAVING vs WHERE
↓ MaĂźtrisĂ© ? → AccĂšs au Bloc 3
 
BLOC 3 — Croiser les tables
├── Notion 3.1 : INNER JOIN, LEFT JOIN — quand choisir lequel
├── Notion 3.2 : Le piùge du LEFT JOIN silencieux
├── Notion 3.3 : Jointures sur 3 tables — gĂ©rer le fan-out
└── Notion 3.4 : EXISTS et NOT EXISTS
↓ MaĂźtrisĂ© ? → AccĂšs au Bloc 4
 
BLOC 4 — Analyser comme un senior
├── Notion 4.1 : CTE — structurer la logique en Ă©tapes lisibles
├── Notion 4.2 : ROW_NUMBER, RANK, LAG, SUM cumulatif
├── Notion 4.3 : NULL — comportement rĂ©el dans chaque fonction
└── Notion 4.4 : Lire EXPLAIN ANALYZE et optimiser
guide-demarrage-modai-lab · 13

La rÚgle du passage de bloc : tu ne passes pas au suivant sur le papier, mais dans la pratique. Modai Lab mesure ta maßtrise sur plusieurs exercices consécutifs avant de te proposer le bloc suivant. Un seul exercice réussi ne suffit pas.


Ce que le parcours adapte selon ton contexte business

Un analyst Sales et un analyst Finance ne font pas les mĂȘmes erreurs. Modai Lab le sait.

Pour un profil Sales :

  • Les exercices du Bloc 3 portent sur des pipelines commerciaux avec des deals multi-statuts

  • Le fan-out arrive sur des tables de contacts avec plusieurs touchpoints

  • Le LEFT JOIN silencieux apparaĂźt sur des leads sans activitĂ©

Pour un profil Finance :

  • Le Bloc 2 introduit les taux de change et les agrĂ©gations multi-devises

  • Le Bloc 3 travaille sur des jointures temporelles (prix historiques, pĂ©riodes de validitĂ©)

  • Le Bloc 4 introduit les soldes cumulatifs et la reconstitution de P&L

Pour un profil E-commerce :

  • Le Bloc 2 porte sur les taux de conversion et leurs dĂ©nominateurs

  • Le Bloc 3 travaille sur les cohortes et la rĂ©tention

  • Le Bloc 4 introduit les fenĂȘtres analytiques sur des donnĂ©es d'acquisition

Le contenu SQL est le mĂȘme. Le contexte, les donnĂ©es et les erreurs Ă  dĂ©tecter sont ceux de ton mĂ©tier.


Le feedback à chaque soumission : un senior à cÎté de toi

C'est la différence centrale de Modai Lab par rapport à un cours classique.

Quand tu soumets une requĂȘte, tu ne reçois pas "correct" ou "faux". Tu reçois ce qu'un senior dirait s'il regardait ton Ă©cran.


Si ta requĂȘte est correcte :

✅ RĂ©sultat correct — 487 lignes, granularitĂ© attendue : une ligne par client.
 
Points forts de ta requĂȘte :
→ Ton filtre dans le ON prĂ©serve bien le LEFT JOIN
→ Le COALESCE sur montant gùre proprement les NULL
 
Un senior irait plus loin :
→ Peux-tu réécrire avec une CTE pour isoler l'agrĂ©gation ?
→ Que se passe-t-il si un client a deux lignes dans la table segments ?
→ Notion suivante recommandĂ©e : window functions (Bloc 4.2)
guide-demarrage-modai-lab · 14 · Si ta requĂȘte est correcte :

Si ta requĂȘte est incorrecte :

❌ RĂ©sultat : 1 240 lignes — rĂ©sultat attendu : 487.
 
Diagnostic précis :
→ Tu as un fan-out sur le JOIN avec user_events
→ Chaque client avec 3 Ă©vĂ©nements apparaĂźt 3 fois
→ Ton COUNT(DISTINCT user_id) masque le problùme sans le corriger
— mais si tu ajoutes SUM(montant), il sera faux
 
Ce que tu dois travailler :
→ Notion 3.3 — Jointures sur 3 tables et gestion du fan-out
→ Exercice recommandĂ© : "Campagnes marketing — attribution sans doublon"
 
Piste sans te donner la réponse :
→ Agrùge d'abord dans une CTE, joins ensuite
→ VĂ©rifie COUNT(*) vs COUNT(DISTINCT user_id) aprĂšs chaque JOIN
guide-demarrage-modai-lab · 15 · Si ta requĂȘte est incorrecte :

Le feedback identifie aussi la notion à retravailler — pas juste l'erreur, mais le concept sous-jacent. Et il recommande l'exercice suivant qui va ancrer la correction.

C'est ça, un senior Ă  cĂŽtĂ© de toi : quelqu'un qui ne te donne pas la rĂ©ponse, mais qui te dit exactement oĂč regarder pour la trouver.


Comment progresser vite avec ce systĂšme

□ Lis le feedback en entier aprĂšs chaque exercice — mĂȘme si tu as bon
□ Quand le feedback recommande une notion : fais-la dans la journĂ©e
□ Si tu rĂ©pĂštes la mĂȘme erreur sur 2 exercices : relis la notion correspondante
□ Mesure ta progression : repasse le test de niveau toutes les 2 semaines
□ L'objectif n'est pas de finir les exercices vite, c'est de ne plus faire les mĂȘmes erreurs
guide-demarrage-modai-lab · 16

đŸ§Ș DĂ©marre ton parcours personnalisĂ© Le test de niveau calibre ton parcours en 5 minutes. Tu sais immĂ©diatement quel bloc travailler et dans quel contexte business. 👉 DĂ©marrer sur modai-lab.com/test-sql/ Parcours adaptĂ© · Notions par bloc · Feedback senior Ă  chaque exercice


PARTIE 5 — Les prompts pour apprendre avec l'IA (sans se faire remplacer par elle)

La différence entre utiliser l'IA pour apprendre et l'utiliser pour éviter d'apprendre tient à une chose : qui tient le stylo.


✅ Prompts qui font progresser

# Prompt "Fais-moi trouver par moi-mĂȘme"
Je veux apprendre Ă  Ă©crire une requĂȘte pour [objectif].
Ne me donne pas la réponse directement.
Pose-moi des questions pour m'aider à construire la logique étape par étape.
Commence par : "Quelle table contient les données dont tu as besoin ?"
 
# Prompt "Explique mon erreur"
Ma requĂȘte retourne [X lignes] mais j'attends [Y lignes].
[coller la requĂȘte]
Explique-moi POURQUOI il y a cet écart, sans me donner la correction.
Je veux comprendre le mécanisme, pas juste copier la solution.
 
# Prompt "Challenge ma solution"
Voici ma requĂȘte pour [objectif] :
[coller la requĂȘte]
Trouve 3 cas oĂč cette requĂȘte donnerait un rĂ©sultat incorrect.
Donne des exemples de données qui révÚlent chaque problÚme.
 
# Prompt "Simule la réunion"
Je dois prĂ©senter cette requĂȘte Ă  mon directeur demain.
[coller la requĂȘte]
Joue le rĂŽle d'un directeur exigeant et pose-moi des questions difficiles
sur mes choix techniques. Je dois défendre chaque clause.
guide-demarrage-modai-lab · 17

❌ Prompts qui te bloquent

# Ces prompts te rendent dépendant, pas compétent :
 
"Écris-moi une requĂȘte SQL pour [objectif]"
→ Tu auras un rĂ©sultat mais rien appris
 
"Corrige ma requĂȘte"
→ Tu auras la bonne version mais pas compris l'erreur
 
"GénÚre un rapport complet sur [sujet]"
→ Tu auras du SQL que tu ne pourras pas expliquer en rĂ©union
guide-demarrage-modai-lab · 18

La rĂšgle : si tu ne peux pas expliquer chaque ligne de la requĂȘte que tu utilises, tu n'as pas fini d'apprendre. Retourne sur Modai Lab.


RĂ©capitulatif — Les 10 minutes pour dĂ©marrer

Étape 1 (2 min) : Passe le test de niveau
→ modai-lab.com/test-sql/
→ RĂ©sultat : tu sais oĂč tu en es
 
Étape 2 (10 sec) : Choisis ton domaine mĂ©tier
→ Celui qui ressemble le plus à ton contexte pro
→ Sales, RH, Finance ou E-commerce
 
Étape 3 (5 min) : Fais le premier exercice de ton niveau
→ Lis le feedback en entier, mĂȘme si tu as bon
→ Note le concept travaillĂ©
→ Passe au suivant
 
RĂšgle des 20 minutes par jour :
→ 1 exercice par jour = progression visible en 2 semaines
→ Feedback lu en entier = comprĂ©hension ancrĂ©e
→ Reformulation Ă  voix haute = prĂȘt pour la rĂ©union
guide-demarrage-modai-lab · 19

✅ Tu es prĂȘt Ă  dĂ©fendre tes requĂȘtes quand :

  • ☐ Tu peux expliquer chaque clause de ta requĂȘte Ă  quelqu'un qui ne connaĂźt pas SQL

  • ☐ Tu sais ce qui se passe si les donnĂ©es sources contiennent des NULL

  • ☐ Tu peux dire pourquoi tu as choisi LEFT JOIN plutĂŽt qu'INNER JOIN

  • ☐ Tu sais dĂ©tecter un fan-out avant mĂȘme de lancer la requĂȘte

  • ☐ Tu peux lire un EXPLAIN ANALYZE et comprendre pourquoi c'est lent

  • ☐ Tu peux corriger ta requĂȘte en live, devant ton manager


🚀 AccĂ©der Ă  Modai Lab

👉 modai-lab.com — La plateforme 👉 modai-lab.com/test-sql/ — Le test de niveau

Le SQL que tu comprends vaut infiniment plus que le SQL que tu copies.


Guide de dĂ©marrage offert suite au post LinkedIn · modai-lab.com · Partagez librement ♻