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() et DENSE_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 JOIN et LEFT JOIN avec 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

  1. CTEs (WITH ... AS) — nommer et réutiliser des sous-requêtes, former un pipeline lisible
  2. Window functions (OVER (PARTITION BY ... ORDER BY ...)) — calculer sur un ensemble de lignes sans réduire le résultat
  3. LAG() — accéder à la ligne précédente pour les comparaisons temporelles
  4. 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ôleTechnique
Requête lisibleCTEs chaînées plutôt que sous-requêtes imbriquées
Colonnes nomméesAS chiffre_affaires sur chaque colonne calculée
NULL gérésCOALESCE ou CASE WHEN IS NULL selon le contexte
Division par zéroCASE WHEN denominateur = 0 THEN NULL avant toute division
Chaque CTE testéepd.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.