0Pricing
SQL Academy · Lektion

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 WHEN in 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 NULL immer ausdrücklich mit WHEN col IS NULL, damit dafür eine aussagekräftige Bezeichnung vergeben wird.
  • CASE funktioniert auch innerhalb von ORDER 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

  1. Der CASE-Ausdruck
  2. Gesuchtes und einfaches CASE
  3. Daten kategorisieren und beschriften
  4. CASE in ORDER BY und Aggregationen
← Zurück zu SQL Academy