SQL est le langage fondamental de tout Data Analyst. Maîtriser les bonnes requêtes permet de répondre rapidement aux questions métier, nettoyer les données et alimenter les dashboards. Voici les patterns SQL que j'utilise au quotidien.
Agrégations essentielles
Les fonctions d'agrégation sont la base :
SELECT categorie, COUNT(*) AS nb_lignes, SUM(montant) AS total, AVG(montant) AS moyenne, MAX(montant) AS maximum FROM transactions GROUP BY categorie HAVING SUM(montant) > 10000 ORDER BY total DESC;
Les JOINs pour croiser les tables
Les jointures permettent de croiser plusieurs tables :
SELECT c.nom_client, COUNT(v.id) AS nb_achats, SUM(v.montant) AS ca_total FROM clients c LEFT JOIN ventes v ON c.id = v.client_id GROUP BY c.nom_client ORDER BY ca_total DESC NULLS LAST;
Fonctions fenêtres (Window Functions)
Les window functions sont très puissantes pour les analyses temporelles :
SELECT
date,
montant,
SUM(montant) OVER (ORDER BY date) AS cumul,
AVG(montant) OVER (
ORDER BY date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS moy_mobile_7j
FROM ventes;
CTEs pour des requêtes lisibles
Les Common Table Expressions rendent les requêtes complexes lisibles :
WITH clients_actifs AS ( SELECT client_id, SUM(montant) as ca FROM ventes WHERE date >= DATEADD(month,-3,GETDATE()) GROUP BY client_id ) SELECT c.nom, ca.ca FROM clients c JOIN clients_actifs ca ON c.id = ca.client_id;
Détecter les anomalies et doublons
SQL est très efficace pour détecter les problèmes de qualité :
-- Doublons SELECT id, COUNT(*) FROM table GROUP BY id HAVING COUNT(*) > 1; -- Valeurs nulles SELECT COUNT(*) - COUNT(colonne) AS nb_nulls FROM table;
Conclusion
Ces patterns SQL couvrent l'essentiel des besoins quotidiens d'un Data Analyst. La maîtrise de SQL — en particulier les window functions et les CTEs — permet de répondre à des questions métier complexes avec efficacité et précision.