Facile
Conclusion — Séance 4
Au-delà du SELECT / WHERE / GROUP BY, vous disposez maintenant d'outils pour écrire des requêtes analytiques, lisibles et exploitables dans un dashboard Streamlit.
Ce que vous savez faire
- Structurer avec les CTEs : décomposer une requête complexe en étapes nommées avec
WITH ... AS - Classer avec les window functions : utiliser
RANK(),ROW_NUMBER()etDENSE_RANK()pour numéroter sans perdre de lignes - Comparer dans le temps avec LAG() : calculer l'évolution mois sur mois et année sur année
- Enrichir avec les jointures : combiner
INNER JOINetLEFT JOINavec CTEs et window functions - Écrire du SQL lisible : indenter, aliaser, commenter, tester par étapes et gérer les NULL
Les 4 outils clés
Récapitulatif
- CTEs (
WITH ... AS) — nommer et réutiliser des sous-requêtes, former un pipeline lisible - Window functions (
OVER (PARTITION BY ... ORDER BY ...)) — calculer sur un ensemble de lignes sans réduire le résultat - LAG() — accéder à la ligne précédente pour les comparaisons temporelles
- JOIN — croiser plusieurs tables pour enrichir les données analytiques
Checklist SQL analytique
Avant de valider une requête analytique, vérifiez ces points :
| Point de contrôle | Technique |
|---|---|
| Requête lisible | CTEs chaînées plutôt que sous-requêtes imbriquées |
| Colonnes nommées | AS chiffre_affaires sur chaque colonne calculée |
| NULL gérés | COALESCE ou CASE WHEN IS NULL selon le contexte |
| Division par zéro | CASE WHEN denominateur = 0 THEN NULL avant toute division |
| Chaque CTE testée | pd.read_sql_query() sur chaque étape isolément |
| Graphique adapté | Bar chart + facet_col, line chart + st.columns(2), fig.add_hline() |
La suite
La séance suivante abordera le déploiement de votre dashboard.
Bilan
Le cycle côté données est en place : requête SQL → repository Python → DataFrame → graphique Plotly → dashboard Streamlit. CTEs + window functions + LAG() + JOIN couvrent les questions que le SQL de base ne pouvait pas traiter.