Interviewfrage für Data Analyst

Was ist ein Fan-out-Join, und wie erkennst du einen in deiner eigenen Query?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Ein Fan-out passiert, wenn du auf eine Tabelle joinst, die mehrere Trefferzeilen pro Schlüssel hat, sodass jede linke Zeile vervielfacht wird und jede SUM darüber aufgebläht ist. Das ist die häufigste Ursache für überhöhten Umsatz in einem Report. Du erkennst ihn, indem du Zeilen vor und nach dem Join zählst oder prüfst, ob der Join-Schlüssel auf der rechten Seite tatsächlich eindeutig ist, bevor du aggregierst.

Warum Interviewer das fragen

Das produziert falsche Zahlen, die glaubwürdig aussehen, also die schlimmste Sorte analytischer Bug, und meistens fällt es erst jemandem im Finance auf, der die echte Summe kennt. Der Interviewer will eine proaktive Erkennungsgewohnheit statt einer Definition und idealerweise das Muster, die Viele-Seite vor dem Join vorzuaggregieren.

So baust du deine Antwort auf

  • Erklär den Mechanismus: ein Eins-zu-viele-Join vervielfacht linke Zeilen.
  • Zeig, warum Aggregate aufblähen, statt zu fehlern.
  • Nenne die Erkennungsgewohnheit: Zeilenzahlen vorher und nachher.
  • Prüf die Eindeutigkeit des Schlüssels auf der Join-Seite explizit.
  • Biete den Fix an: die Viele-Seite zuerst aggregieren, dann joinen.

Beispielantwort

Gesprochenes Beispiel, erste Person

Wenn ich Bestellungen auf Bestellpositionen über order_id joine und eine Bestellung vier Positionen hat, taucht diese Bestellzeile jetzt viermal auf. Es fehlert nichts, aber wenn ich danach den Bestellwert summiere, habe ich den Umsatz dieser Bestellung vervierfacht. Das ist heimtückisch, weil die Zahl plausibel ist, nur eben falsch, und derjenige, der es findet, ist meistens Finance drei Wochen später. Meine Gewohnheit ist: Zeilen der Basistabelle zählen, Join laufen lassen, wieder zählen, und wenn sich die Zahl geändert hat, muss ich erklären können, warum. Ich prüfe außerdem vorher die Eindeutigkeit des Join-Schlüssels mit einem schnellen group by und having count größer eins, das dauert zehn Sekunden. Der Fix ist meistens, die Viele-Seite vor dem Join auf die gewünschte Granularität zu aggregieren, ich summiere also den Positionsumsatz pro Bestellung in einer CTE und joine diese eine Zeile pro Bestellung zurück an den Kopf. Das hält die Granularität intakt und macht die Query leichter nachvollziehbar.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Wie schreibst du eine Fan-out-Query um, damit die Granularität erhalten bleibt?
  • Warum ist SELECT DISTINCT ein schlechter Fix dafür?
  • Wie erkennst du das in einem Dashboard, das jemand anderes gebaut hat?

Weitere Fragen für Data Analyst

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen