Daten kategorisieren und beschriften
Werte in Kategorien umwandeln
Daten kategorisieren und beschriften ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was bedeutet Bucketing?
Bucketing bedeutet, Rohwerte in benannte Kategorien zu gruppieren – also Zahlen, Datumsangaben oder Codes in für Menschen verständliche Bezeichnungen umzuwandeln.
Anstatt eine Punktzahl von 87 anzuzeigen, zeigen Sie "Gut" an. Anstatt ein Alter von 14 anzuzeigen, zeigen Sie "Teenager" an. Der CASE-Ausdruck ist Ihr wichtigstes Werkzeug dafür.
Beispieltabelle: Bestellungen
Wir verwenden während dieser Lektion eine Tabelle orders. Jede Zeile enthält einen Bestellbetrag und einen Statuscode.
Führen Sie die folgende Abfrage aus, um die Daten anzuzeigen, mit denen wir arbeiten.
SELECT id, customer, amount, status
FROM orders
ORDER BY id;Bezeichnungen mit CASE WHEN vergeben
Das einfachste Muster für Bucketing prüft eine Bedingung und weist eine Bezeichnung zu. Der Block CASE WHEN ... THEN ... ELSE ... END gibt für jede Zeile eine neue Zeichenfolge zurück.
Hier kennzeichnen wir jede Bestellung abhängig von ihrem Betrag entweder als 'Groß' oder 'Klein'.
SELECT id,
amount,
CASE
WHEN amount >= 500 THEN 'Large'
ELSE 'Small'
END AS order_size
FROM orders;Mehrere Buckets mit WHEN-Ketten
Sie können beliebig viele WHEN-Klauseln hinzufügen. SQL prüft sie von oben nach unten und stoppt beim ersten Treffer.
Dieses Beispiel teilt die Beträge in drei Stufen auf: Klein, Mittel und Groß.
SELECT id,
amount,
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders;Textwerte in Buckets einteilen
Buckets sind nicht nur für Zahlen geeignet. Sie können exakte Textwerte abgleichen und durch verständlichere Bezeichnungen ersetzen.
Hier werden die ursprünglichen Statuscodes 'P', 'S' und 'C' in verständliche Wörter umgewandelt.
SELECT id,
status,
CASE status
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Shipped'
WHEN 'C' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_label
FROM orders;Die Simple-CASE-Form verwenden
Wenn Sie eine Spalte mit mehreren festen Werten vergleichen, ist die Form Simple CASE (CASE column WHEN value ...) kürzer und leichter zu lesen, als den Spaltennamen in jeder WHEN-Klausel zu wiederholen.
Das Ergebnis ist identisch mit dem der Searched-CASE-Form.
SELECT id,
CASE status
WHEN 'P' THEN 'Pending'
WHEN 'S' THEN 'Shipped'
WHEN 'C' THEN 'Cancelled'
ELSE 'Unknown'
END AS status_label
FROM orders;Bucketing innerhalb von GROUP BY
Sobald Sie eine Bucket-Bezeichnung haben, können Sie danach gruppieren, um zu zählen, wie viele Zeilen in die einzelnen Kategorien fallen. Schließen Sie den gesamten CASE-Ausdruck in GROUP BY ein.
Diese Abfrage zeigt, wie viele Bestellungen Klein, Mittel oder Groß sind.
SELECT
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier,
COUNT(*) AS total_orders
FROM orders
GROUP BY
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END;Bucketing mit einem Alias aus einer Unterabfrage
Das Wiederholen eines langen CASE-Blocks in GROUP BY ist umständlich. Ein saubererer Ansatz besteht darin, die Hauptabfrage in eine Unterabfrage (oder CTE) einzuschließen, sodass Sie direkt auf den Alias verweisen können.
SELECT order_tier, COUNT(*) AS total_orders
FROM (
SELECT
CASE
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders
) AS bucketed
GROUP BY order_tier;Numerische Buckets: Altersgruppen
Die Einteilung in Altersgruppen ist ein klassischer Anwendungsfall für Bucketing. Die folgende Abfrage ordnet jeden Kunden einer benannten Altersgruppe zu.
Beachten Sie, dass die Bedingungen von klein nach groß angeordnet sind – SQL stoppt beim ersten WHEN, das wahr ist, daher ist die Reihenfolge wichtig.
SELECT name,
age,
CASE
WHEN age < 13 THEN 'Child'
WHEN age < 18 THEN 'Teen'
WHEN age < 65 THEN 'Adult'
ELSE 'Senior'
END AS age_group
FROM customers;NULL-Werte in einem Bucket kennzeichnen
Wenn ein Wert NULL ist, trifft keine WHEN-Bedingung außer IS NULL auf ihn zu. Ohne eine ausdrückliche Prüfung fallen NULL-Werte in den ELSE-Zweig.
Fügen Sie eine Klausel WHEN column IS NULL hinzu, um NULL-Werten eine eigene Bezeichnung zu geben.
SELECT id,
amount,
CASE
WHEN amount IS NULL THEN 'No Data'
WHEN amount < 100 THEN 'Small'
WHEN amount < 500 THEN 'Medium'
ELSE 'Large'
END AS order_tier
FROM orders;Bucketing in ORDER BY
Sie können einen CASE-Ausdruck auch direkt innerhalb von ORDER BY verwenden, um die Sortierpriorität zu steuern, ohne eine neue Spalte hinzuzufügen.
Das folgende Beispiel zeigt ausstehende Bestellungen immer zuerst, dann versendete und anschließend stornierte.
SELECT id, customer, status
FROM orders
ORDER BY
CASE status
WHEN 'P' THEN 1
WHEN 'S' THEN 2
WHEN 'C' THEN 3
ELSE 4
END;Schnelltest
Testen Sie Ihr Verständnis vom Bucketing und der Kennzeichnung von Daten mit CASE.
Zusammenfassung der Lektion
Gute Arbeit! Das haben Sie über das Bucketing und die Kennzeichnung von Daten gelernt:
- Bucketing wandelt Rohwerte mithilfe von
CASE WHENin benannte Kategorien um. - Ketten von
WHEN-Klauseln erzeugen mehrere Buckets; SQL stoppt beim ersten Treffer. - Die Form Simple CASE (
CASE col WHEN val) eignet sich ideal, wenn eine Spalte mit festen Werten verglichen wird. - Sie können einen
CASE-Ausdruck mit GROUP BY gruppieren, um die Zeilen in den einzelnen Buckets zu zählen. - Behandeln Sie
NULLimmer ausdrücklich mitWHEN col IS NULL, damit dafür eine aussagekräftige Bezeichnung vergeben wird. CASEfunktioniert auch innerhalb vonORDER BY, um eine benutzerdefinierte Sortierpriorität festzulegen.
Bucketing macht Berichte wesentlich verständlicher, indem Rohcodes und Zahlen durch klare, aussagekräftige Bezeichnungen ersetzt werden.
Häufig gestellte Fragen
Ist die Lektion „Daten kategorisieren und beschriften“ kostenlos?
Ja — der vollständige Text von „Daten kategorisieren und beschriften“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Daten kategorisieren und beschriften“?
Werte in Kategorien umwandeln Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Daten kategorisieren und beschriften“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Der CASE-Ausdruck
- Gesuchtes und einfaches CASE
- Daten kategorisieren und beschriften
- CASE in ORDER BY und Aggregationen