Der Join, der den Umsatz verdoppelt

Modul 1: Mit KI analysieren und ihre Fehler finden

Kursübersicht

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

0 von 1
  1. 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.

Übung

Frage 1 von 2

Nach deinen Joins ist COUNT(*) 5.000 und COUNT(DISTINCT order_id) 1.700. Was sagt dir das?

KI-Tutor

Stell Fragen zu dieser Lektion und lass dich durch die Aufgabe „Probier es aus“ begleiten. Der Tutor ist Teil von Learn Pro.

Learn Pro ansehen