Leçon 1Techniques de filtrage : WHERE vs HAVING, utilisation d'EXISTS, IN, sous-requêtes corréléesDéveloppez des stratégies de filtrage précises pour les requêtes analytiques. Comparez WHERE et HAVING, utilisez EXISTS et IN pour les filtres de sous-requêtes, et appliquez des sous-requêtes corrélées pour exprimer des conditions analytiques complexes et conscientes des lignes.
WHERE vs HAVING in grouped queriesUsing IN and NOT IN with subqueriesEXISTS and NOT EXISTS for semi joinsCorrelated subqueries for row-aware logicHandling NULLs in filter conditionsPerformance tips for complex filtersLeçon 2Types de données SQL et gestion des dates/heures (DATE, TIMESTAMP, précision numérique)Apprenez les principaux types de données SQL utilisés en analyse et leur impact sur le stockage, la précision et les calculs. Comprenez les échelles numériques, la gestion de texte et les opérations robustes sur dates et timestamps pour l'analyse temporelle.
Numeric types and precision for metricsCharacter and text data considerationsDATE vs TIMESTAMP and time zonesCasting and converting between typesDate arithmetic and interval calculationsExtracting parts of dates for groupingLeçon 3Agrégations et groupement : GROUP BY, HAVING, COUNT, SUM, AVG, MIN, MAXApprenez à résumer les données avec agrégations et groupement. Utilisez GROUP BY et HAVING pour construire des métriques, appliquez COUNT, SUM, AVG, MIN et MAX, et concevez des requêtes agrégées robustes pour tableaux de bord et rapports.
GROUP BY fundamentals and syntaxAggregate functions COUNT and SUMAVG, MIN, and MAX for distributionsHAVING to filter aggregated resultsGrouping by expressions and bucketsDealing with NULLs in aggregatesLeçon 4Chargement de CSV dans bases de données : COPY, LOAD DATA, import sqlite et pièges courantsApprenez des méthodes pratiques pour charger des données CSV dans les bases de données pour analyse. Utilisez COPY, LOAD DATA et import SQLite, gérez délimiteurs et encodages, et évitez les pièges courants causant des chargements défectueux ou partiels.
Preparing CSVs for reliable importsUsing COPY in PostgreSQL and similar systemsLOAD DATA for MySQL and compatible enginesSQLite .import workflow and optionsHandling encodings, delimiters, and quotesValidating row counts and rejected recordsLeçon 5Essentiels DDL et DML : CREATE TABLE, ALTER, INSERT, UPDATE, DELETE, contrôle des transactionsApprenez comment DDL et DML façonnent et modifient les tables pour l'analyse. Pratiquez la création et modification de schémas, insertion et mise à jour de données, suppression sécurisée, et utilisation de transactions pour assurer l'intégrité des données dans les workflows et pipelines analytiques.
Creating analytical tables with CREATE TABLEModifying schemas safely with ALTER TABLEINSERT patterns for bulk and incremental loadsUPDATE and DELETE with safe predicatesCOMMIT, ROLLBACK, and transaction scopeACID properties in analytical workloadsLeçon 6Bases des requêtes : SELECT, WHERE, ORDER BY, LIMIT, DISTINCTMaîtrisez la syntaxe de requête de base utilisée dans presque toutes les analyses. Apprenez comment SELECT récupère les colonnes, WHERE filtre les lignes, ORDER BY trie les résultats, LIMIT contrôle la taille d'échantillon, et DISTINCT supprime les doublons dans les requêtes analytiques.
SELECT list design and column aliasesFiltering rows with WHERE conditionsSorting results with ORDER BYLIMIT and OFFSET for sampling dataUsing DISTINCT to remove duplicatesBasic query debugging and refinementLeçon 7Jointures et opérations d'ensemble : INNER, LEFT, RIGHT, FULL, CROSS, UNION, EXCEPT, INTERSECTComprenez comment les jointures et opérations d'ensemble combinent les datasets pour l'analyse. Apprenez quand utiliser chaque type de jointure, comment éviter les erreurs de duplication, et comment UNION, EXCEPT et INTERSECT supportent les comparaisons analytiques complexes.
INNER JOIN for intersecting datasetsLEFT, RIGHT, and FULL OUTER JOIN use casesCROSS JOIN and Cartesian products in analysisUNION vs UNION ALL for stacking dataEXCEPT and INTERSECT for set comparisonsDetecting and handling join duplicationLeçon 8Concepts de base de données relationnelle : tables, clés primaires/étrangères, normalisation vs dénormalisationComprenez les concepts relationnels de base qui sous-tendent les schémas analytiques. Apprenez les tables, clés primaires et étrangères, formes de normalisation, et quand dénormaliser pour la performance en reporting et charges BI.
Tables, rows, and columns in practicePrimary keys and uniqueness constraintsForeign keys and referential integrityNormalization forms and redundancy controlDenormalization for reporting performanceStar and snowflake schemas overviewLeçon 9Bases de performance : index, plans de requêtes, explain/analyze, stratégies d'optimisation simples pour requêtes analytiquesObtenez une vue pratique de la performance des requêtes pour l'analyse. Apprenez comment fonctionnent les index, lisez les plans de requêtes, utilisez EXPLAIN et ANALYZE, et appliquez des stratégies d'optimisation simples pour garder les requêtes analytiques efficaces.
How indexes speed up lookups and joinsReading and interpreting query plansUsing EXPLAIN and ANALYZE in practiceIdentifying slow filters and joinsOptimizing GROUP BY and aggregationsBasic indexing strategies for analyticsLeçon 10Vue d'ensemble fonctions de fenêtre : ROW_NUMBER, RANK, DENSE_RANK, SUM() OVER(), AVG() OVER(), PARTITION BYExplorez les fonctions de fenêtre pour effectuer une analyse avancée sans collapse des lignes. Apprenez le ranking, totaux courants, moyennes mobiles, et stratégies de partitionnement qui alimentent l'analyse de cohortes, tendances et segmentation en SQL.
Window function syntax and OVER clauseROW_NUMBER, RANK, and DENSE_RANK use casesRunning totals with SUM() OVER()Moving averages with window framesPARTITION BY for cohort and segment logicORDER BY in windows vs query ordering