Kombinierte Praxis

Geschätzte Lektüre: 2 Minuten 91 Ansichten

Kombinierte Praxis: Eine komplexe Auswertung

Zum Abschluss dieser Lektion entwickeln wir eine umfassende Analyse, die mehrere der gelernten Techniken kombiniert.

Aufgabe: Kundenanalyse mit Rang, Kategorisierung und Vorjahresvergleich

WITH kunden_umsatz AS (
    -- Subquery als CTE (Common Table Expression)
    SELECT 
        k.id,
        k.nachname,
        k.vorname,
        k.registrierungsdatum,
        COUNT(DISTINCT b.id) AS anzahl_bestellungen,
        COALESCE(SUM(bp.menge * bp.einzelpreis), 0) AS gesamtumsatz
    FROM kunden k
    LEFT JOIN bestellungen b ON k.id = b.kunden_id
    LEFT JOIN bestellpositionen bp ON b.id = bp.bestellung_id
    GROUP BY k.id, k.nachname, k.vorname, k.registrierungsdatum
)
SELECT 
    nachname,
    vorname,
    registrierungsdatum,
    anzahl_bestellungen,
    gesamtumsatz,
    RANK() OVER (ORDER BY gesamtumsatz DESC) AS umsatz_rank,
    CASE 
        WHEN gesamtumsatz = 0 THEN 'Inaktiv'
        WHEN anzahl_bestellungen = 1 THEN 'Neukunde'
        WHEN gesamtumsatz > 500 THEN 'Top-Kunde'
        ELSE 'Aktiv'
    END AS kundenkategorie
FROM kunden_umsatz
ORDER BY umsatz_rank;

Diese Abfrage verwendet:

  • Eine Common Table Expression (CTE) (WITH kunden_umsatz AS ...) zur Strukturierung
  • Eine Fensterfunktion (RANK()) für die Rangfolge
  • Ein CASE-Statement zur Kategorisierung

Führen Sie diese Abfrage in Ihrer phpMyAdmin-Umgebung aus und analysieren Sie das Ergebnis. Variieren Sie die Bedingungen im CASE-Statement, um unterschiedliche Kategorisierungen zu erhalten.

Dieses Dokument teilen

Kombinierte Praxis

Oder Link kopieren

INHALT

Abonnieren

×
Cancel