CodeGym /Kurse /SQL SELF /Beispiele für Datenformatierung und Sortierung in echten ...

Beispiele für Datenformatierung und Sortierung in echten Aufgaben

SQL SELF
Level 6 , Lektion 3
Verfügbar

Daten sortieren und formatieren – das sind wichtige Skills, mit denen du lesbare Reports bauen, Datenanalyse optimieren und die User Experience verbessern kannst. Das brauchst du beim Erstellen von Analyse-Reports, beim Vorbereiten von Daten für den Export und generell im Alltag mit Datenbanken. In der Praxis hast du oft Aufgaben, bei denen du Daten schön formatieren, doppelte Einträge löschen und Infos für bessere Übersicht sortieren musst. Genau das machen wir heute!

Beispiel 1: Erstellen einer Liste einzigartiger Kunden mit kombiniertem Vor- und Nachnamen, sortiert nach Nachname

Wir haben eine Tabelle customers, in der Kundendaten gespeichert sind:

id first_name last_name city
1 Alex Lin New York
2 Maria Chi Los Angeles
3 Alex Lin New York
4 Anna Song Chicago

Unser Ziel:

  1. first_name und last_name zu einer Spalte full_name zusammenfügen.
  2. Nur einzigartige Kunden rausziehen.
  3. Die Liste nach Nachname (last_name) sortieren.

SQL-Query

SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    city
FROM customers
ORDER BY last_name;
full_name city
Maria Chi Los Angeles
Alex Lin New York
Anna Song Chicago

Check mal: Doppelte Einträge wie Alex Lin sind dank DISTINCT rausgeflogen und die komplette Liste ist alphabetisch nach Nachname sortiert.

Beispiel 2: Formatieren und Sortieren von Bestelldaten

In der Tabelle orders sind die Bestellungen gespeichert:

order_id customer_name order_date total_amount
1 Alex Lin 2023-10-01 1500
2 Maria Chi 2023-10-02 2000
3 Alex Lin 2023-10-03 1500
4 Anna Song 2023-10-04 3000

Unser Ziel:

  1. Eine Spalte formatted_order_date erstellen, wo das Bestelldatum im Format DD-MM-YYYY steht.
  2. Doppelte Kombinationen von Kunde und Datum entfernen (nur einzigartige customer_name und order_date behalten).
  3. Bestellungen nach Datum absteigend sortieren.
  4. SQL-Query
SELECT DISTINCT
customer_name,
TO_CHAR(order_date, 'DD-MM-YYYY') AS formatted_order_date,
total_amount
FROM orders
ORDER BY order_date DESC;

Ergebnis:

customer_name formatted_order_date total_amount
Anna Song 04-10-2023 3000
Alex Lin 03-10-2023 1500
Maria Chi 02-10-2023 2000

Siehst du, wie wir mit TO_CHAR() das Datum ins DD-MM-YYYY-Format gebracht haben und mit DISTINCT doppelte Einträge rausgefiltert wurden?

Beispiel 3: Einzigartige Kombinationen "Vorname + Nachname" von Studenten extrahieren und nach Nachname und Geburtsdatum sortieren

In der Tabelle students sind die Studentendaten:

student_id first_name last_name birth_date
1 Alex Lin 2001-03-15
2 Maria Chi 2000-06-20
3 Alex Lin 2001-03-15
4 Anna Song 1999-10-10

Unser Ziel:

  • Vor- und Nachname zu einer Spalte full_name zusammenfügen.
  • Einzigartige Kombinationen "Vorname + Nachname" extrahieren.
  • Studenten nach Nachname und dann nach Geburtsdatum sortieren.
SELECT DISTINCT
    CONCAT(first_name, ' ', last_name) AS full_name,
    birth_date
FROM students
ORDER BY last_name, birth_date;

Ergebnis:

full_name birth_date
Maria Chi 2000-06-20
Alex Lin 2001-03-15
Anna Song 1999-10-10

Wichtig: Zwei identische Einträge für "Alex Lin" wurden zu einer Zeile zusammengefasst und die Sortierung läuft erst nach Nachname, dann nach Geburtsdatum.

Praxisaufgabe

Wende das Wissen von heute an, um folgende Aufgabe zu lösen:

Aufgabe: Du hast eine Tabelle products, die folgende Daten enthält:

product_id category product_name price
1 Elektronik Telefon 50000
2 Kleidung Jacke 8000
3 Elektronik Laptop 70000
4 Kleidung Jacke 8000
  1. Erstelle eine Spalte formatted_product, in der product_name mit der Kategorie durch einen Bindestrich verbunden ist, z.B.: Telefon - Elektronik.
  2. Entferne doppelte Kombinationen von product_name und category.
  3. Sortiere die Produkte nach Kategorie und dann nach Preis (vom günstigsten zum teuersten).

Hier ist ein Query-Template für die Aufgabe:

SELECT DISTINCT
    CONCAT(product_name, ' - ', category) AS formatted_product,
    price
FROM products
ORDER BY category, price ASC;

Versuch mal selbst, das Ergebnis dieses Queries zu überlegen!

Mit CONCAT(), DISTINCT und ORDER BY bekommst du super lesbare und strukturierte Daten – das ist mega wichtig in echten Projekten und Aufgaben. Üb ruhig weiter an Beispielen, damit du die Kombis richtig drauf hast!

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION