Un fan out se produit quand vous joignez à une table qui a plusieurs lignes correspondantes par clé : chaque ligne de gauche est dupliquée et toute SUM dessus est gonflée. C'est la cause la plus courante de chiffre d'affaires surestimé dans un rapport. Repérez-le en comptant les lignes avant et après la jointure, ou en vérifiant que la clé de jointure est bien unique du côté droit avant d'agréger.
Pourquoi les recruteurs posent cette question
Cela produit des chiffres faux qui ont l'air crédibles, la pire catégorie de bug analytique, et c'est en général quelqu'un de la finance qui connaît le vrai total qui finit par l'attraper. Les recruteurs veulent une habitude de détection proactive plutôt qu'une définition, et idéalement le motif consistant à pré-agréger le côté multiple avant de joindre.
Comment structurer votre réponse
- Expliquez le mécanisme : une jointure un vers plusieurs duplique les lignes de gauche.
- Montrez pourquoi les agrégats gonflent au lieu de lever une erreur.
- Donnez l'habitude de détection : compter les lignes avant et après.
- Vérifiez explicitement l'unicité de la clé du côté joint.
- Proposez le correctif : agréger d'abord le côté multiple, puis joindre.
Exemple de réponse
Si je joins les commandes aux lignes de commande sur order_id et qu'une commande a quatre lignes, cette commande apparaît maintenant quatre fois. Rien ne lève d'erreur, mais si je somme ensuite le total de la commande, j'ai quadruplé le chiffre d'affaires de cette commande. C'est sournois parce que le chiffre est plausible, juste faux, et la personne qui le trouve est en général la finance trois semaines plus tard. Mon réflexe, c'est de compter les lignes de la table de base, lancer la jointure, recompter, et si le nombre a changé je dois pouvoir expliquer pourquoi. Je vérifie aussi d'abord l'unicité de la clé de jointure avec un group by et un having count supérieur à un, ce qui prend dix secondes. Le correctif consiste en général à agréger le côté multiple à la maille voulue avant de joindre : je somme le chiffre d'affaires des lignes par commande dans une CTE, et je rejoins cette unique ligne par commande à l'en-tête. Cela préserve la maille et rend la requête plus facile à raisonner.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment réécririez-vous une requête en fan out pour préserver la maille ?
- Pourquoi SELECT DISTINCT est-il un mauvais correctif ?
- Comment détecteriez-vous cela dans un tableau de bord construit par quelqu'un d'autre ?
Autres questions pour Analyste de données
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions