Kurzer Check
Rate zuerst, ohne Punktabzug. Eine Bestellung über 90 $ hat drei Artikel. Du verknüpfst orders mit order_items und bildest dann die SUM des Bestellbetrags. Wie viel trägt diese Bestellung zur Summe bei?
Ein Join verbindet Zeilen aus zwei Tabellen, die einen Schlüssel teilen, etwa order_id. Passt eine Zeile auf der einen Seite zu vielen Zeilen auf der anderen, wiederholt der Join sie. Analysten nennen das Fan-out. Die Abfrage läuft, die Tabelle sieht sauber aus, und die Summe ist zu hoch.
KI-Tools fügen Joins großzügig hinzu, manchmal zu Tabellen, die die Antwort gar nicht braucht. Die Prüfung dauert zehn Sekunden: Zähl nach jedem Join die Zeilen und die eindeutigen Schlüssel. Weichen sie ab, wiederholt sich etwas.
Ein Beispiel
Eine KI hat das für „bezahlter Umsatz nach Land“ geschrieben:
SELECT c.country, SUM(o.amount_usd) AS revenue
FROM orders o
JOIN customers c ON c.customer_id = o.customer_id
JOIN order_items i ON i.order_id = o.order_id
WHERE o.status = 'paid'
GROUP BY c.country;
Die Abfrage nutzt order_items nie, also richtet dieser Join nur Schaden an. So hat ein Analyst es gefunden und behoben:
Prüfung nach den Joins: COUNT(*) = 3.412 COUNT(DISTINCT order_id) = 1.208
Unterschiedlich, also wiederholt ein Join Bestellungen. order_items wird nie genutzt.
Fix: den Join zu order_items löschen. Jetzt sind beide Zahlen 1.208, und die
Summe stimmt mit der Finanzabteilung überein. (Brauchst du Artikelspalten, summier
die Artikel zuerst pro Bestellung und verknüpf dann dieses Ergebnis.)
Lücken füllen
Füll die Lücken in der Prüfung.
Prüfabfrage
SELECT COUNT(*), FROM orders o JOIN order_items i ON i.order_id = o.order_id; -- Wenn die beiden Zahlen , wiederholt der Join Bestellungen.
Probier es aus
Deine Schritte, etwa 2 Minuten
- 1.Zähl in einer Berichtsabfrage nach jedem Join die Zeilen und die eindeutigen Schlüssel. Füg die beiden Zählungen deiner Checkliste hinzu.2 Min.