Data Engineering

SQL avancé pour le Data Engineering

Window functions, CTEs récursives, requêtes analytiques, optimisation, EXPLAIN ANALYZE, indexation, partitionnement

20 questions d'entretien·
Confirmé
1

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.

2

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.

3

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.

4

Quel est le rôle de la clause PARTITION BY dans une window function ?

5

Quelle fonction permet d'accéder à la valeur de la ligne précédente dans une window function ?

+17 questions d'entretien

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