
SQL avancé pour le Data Engineering
Window functions, CTEs récursives, requêtes analytiques, optimisation, EXPLAIN ANALYZE, indexation, partitionnement
1Quelle window function permet d'attribuer un numéro séquentiel unique à chaque ligne d'une partition ?
Quelle window function permet d'attribuer un numéro séquentiel unique à chaque ligne d'une partition ?
Réponse
ROW_NUMBER() attribue un numéro séquentiel unique à chaque ligne dans une partition, en commençant par 1. Contrairement à RANK() et DENSE_RANK() qui peuvent attribuer le même numéro à des valeurs égales, ROW_NUMBER() garantit toujours des numéros uniques, même pour des valeurs identiques dans l'ORDER BY.
2Quelle est la différence principale entre RANK() et DENSE_RANK() ?
Quelle est la différence principale entre RANK() et DENSE_RANK() ?
Réponse
RANK() laisse des trous dans la numérotation après des valeurs ex aequo. Par exemple, si deux lignes sont classées 1, la suivante sera classée 3. DENSE_RANK() ne laisse pas de trous : après deux lignes classées 1, la suivante sera classée 2. Cette distinction est importante pour les analyses de classement où les gaps peuvent fausser les statistiques.
3Comment calculer une somme cumulative (running total) avec une window function ?
Comment calculer une somme cumulative (running total) avec une window function ?
Réponse
SUM() OVER avec ORDER BY sans bornes explicites utilise par défaut ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, ce qui calcule la somme de toutes les lignes précédentes jusqu'à la ligne courante incluse. C'est le comportement standard pour créer des totaux cumulatifs dans les analyses temporelles ou séquentielles.
Quel est le rôle de la clause PARTITION BY dans une window function ?
Quelle fonction permet d'accéder à la valeur de la ligne précédente dans une window function ?
+17 questions d'entretien
Autres sujets d'entretien Data Engineering
Linux & Shell - Fondamentaux
Git & GitHub - Fondamentaux
Python avancé pour le Data Engineering
Docker - Fondamentaux
Google Cloud Platform - Fondamentaux
CI/CD et qualité de code
Docker Compose
FastAPI - APIs de données
Data Lake - Architecture et ingestion
BigQuery pour le Data Engineering
PostgreSQL - Administration
Data Modeling pour le Data Engineering
Fivetran & Airbyte - Ingestion de données
dbt - Fondamentaux
Apache Airflow - Fondamentaux
Kubernetes - Fondamentaux
dbt - Fonctionnalités avancées
Patterns ETL / ELT / ETLT
Apache Airflow - Avancé
Airflow + dbt - Orchestration de pipelines
PySpark - Traitement à grande échelle
Google Pub/Sub - Streaming de données
Apache Beam & Dataflow
Kubernetes - Production et scaling
Terraform - Infrastructure as Code
Bases de données NoSQL
Architecture Data moderne
Monitoring et observabilité
IAM et sécurité des données
Maîtrise Data Engineering pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement