Question d'entretien pour Analyste de données

Quelle est la différence entre un inner join et un left join, et dans quel cas le mauvais choix ruine-t-il silencieusement une analyse ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Un inner join ne renvoie que les lignes qui ont une correspondance des deux côtés. Un left join renvoie toutes les lignes de la table de gauche plus les colonnes appariées de droite, avec des nulls là où il n'y a pas de correspondance. Le dégât silencieux vient de l'usage d'un inner join pour un comptage : les clients sans aucune commande disparaissent complètement, votre taux de conversion paraît meilleur que la réalité et rien ne lève d'erreur.

Pourquoi les recruteurs posent cette question

Les jointures sont l'outil le plus utilisé dans la journée d'un analyste, et le mauvais choix produit un chiffre faux mais plausible plutôt qu'une erreur. Les recruteurs veulent vous entendre dire que vous réfléchissez au côté qu'il faut préserver avant d'écrire la requête, et que vous vérifiez le nombre de lignes avant et après une jointure au lieu de faire confiance au résultat.

Comment structurer votre réponse

  • Définissez les deux jointures par les lignes qui survivent.
  • Donnez un cas concret où un inner join masque les zéros.
  • Mentionnez la vérification du nombre de lignes avant et après la jointure.
  • Notez que filtrer la table de droite dans le WHERE transforme un left join en inner join.

Exemple de réponse

Exemple parlé, à la première personne

Inner ne garde que les lignes appariées, left garde tout à gauche et remplit avec des nulls quand le côté droit n'a rien. Si j'y tiens autant, c'est que le mauvais choix ne lève aucune erreur : il vous donne juste une réponse fausse pleine d'assurance. La version classique, c'est de compter des clients en joignant aux commandes. Avec un inner join, quiconque n'a jamais commandé disparaît, donc si vous calculez ensuite la moyenne de commandes par client, vous avez discrètement exclu tout le dénominateur qui vous intéressait. Il y a un piège voisin que je cherche en revue : si vous écrivez un left join puis que vous filtrez sur une colonne de la table de droite dans le WHERE, les nulls sont éliminés et vous l'avez reconverti en inner join sans vous en apercevoir. Le filtre doit aller dans la clause ON. Mon réflexe, c'est de compter les lignes de la table de base, lancer la jointure, et recompter. Si le nombre a grossi, j'ai un fan out. S'il a rétréci, j'ai perdu des lignes que je voulais probablement garder.

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 marche

Questions de relance à prévoir

  • Pourquoi filtrer la table de droite dans le WHERE casse-t-il un left join ?
  • Comment trouveriez-vous les lignes présentes dans une table mais pas dans l'autre ?
  • À quoi sert un full outer join en pratique ?

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

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot