SQL für Data Analysts: Typische Business-Fragen in SQL übersetzt

In Unternehmen entstehen täglich zahlreiche Fragen, die die Geschäftsleitung, das Marketing oder andere Fachbereiche beschäftigen. Fragen wie „Wie ist unsere Kundenbindung?“ oder „Wie entwickelt sich unser Umsatz?“ sind essenziell für fundierte Entscheidungen. Doch diese Business-Fragen liegen oft nicht in einer Sprache vor, die Datenbanken direkt verstehen. Hier kommen Data Analysts ins Spiel – sie übersetzen die Anforderungen in konkrete SQL-Abfragen, um präzise Antworten aus den Daten zu ziehen.

Das Ziel dieses Artikels ist es, typische Business-Fragen systematisch zu kategorisieren und für jede Frage direkt die passende SQL-Umsetzung zu zeigen. So erhalten vor allem Data Analysts, BI-Entwickler und SQL-Einsteiger praxisnahe Beispiele, die sie leicht nachvollziehen und in ihrem Alltag einsetzen können.

Voraussetzung für das Verständnis der Beispiele sind grundlegende SQL-Kenntnisse, insbesondere zu JOINs und Aggregationen. Keine Sorge, wir erläutern die wichtigsten Konzepte verständlich und Schritt für Schritt.

SQL Data Analysts

Kategorie 1: Umsatz & Profitabilität

Umsatz- und Profitabilitätsfragen gehören zu den häufigsten Anliegen in Unternehmen. Data Analysts müssen hier oft Trends erkennen, Vergleiche anstellen und die finanziellen Auswirkungen verschiedener Faktoren analysieren.

Ein typisches Beispiel ist die Frage:
„Wie hat sich unser monatlicher Umsatz im Vergleich zum Vorjahr entwickelt?“

Um diese Frage mit SQL zu beantworten, bietet sich eine Abfrage an, die die Umsätze nach Jahr und Monat gruppiert, den Umsatz des aktuellen Monats berechnet und ihn mit dem Umsatz des gleichen Monats im Vorjahr vergleicht.


SELECT
  EXTRACT(YEAR_MONTH FROM bestelldatum) AS Jahr_Monat,
  SUM(umsatz) AS Aktueller_Umsatz,
  LAG(SUM(umsatz), 12) OVER (ORDER BY EXTRACT(YEAR_MONTH FROM bestelldatum)) AS Vorjahres_Umsatz,
  (SUM(umsatz) - LAG(SUM(umsatz), 12) OVER (ORDER BY EXTRACT(YEAR_MONTH FROM bestelldatum))) 
    / LAG(SUM(umsatz), 12) OVER (ORDER BY EXTRACT(YEAR_MONTH FROM bestelldatum)) * 100 AS Wachstum_Prozent
FROM bestellungen
GROUP BY Jahr_Monat
ORDER BY Jahr_Monat DESC;
  

Diese Abfrage nutzt die Fensterfunktion LAG(), um den Umsatz des gleichen Monats im Vorjahr zu ermitteln, und berechnet daraufhin die prozentuale Wachstumsrate.

Weitere typische Fragen in diesem Bereich sind:

  • „Welche Produkte haben die höchste Marge?“
    Diese Frage lässt sich mit einer GROUP BY-Klausel und einer Berechnung der Marge pro Produkt beantworten.
  • „In welchen Regionen sinken die Quartalsumsätze?“
    Hier können ROLLUP und Vergleichsfunktionen helfen, um aggregierte Werte zu bilden und Veränderungen zu analysieren.

Solche Abfragen bilden die Grundlage für Umsatzanalysen und helfen, Geschäftsentscheidungen auf datenbasierte Insights zu stützen.

Kategorie 2: Kundensegmentierung

Kundensegmentierung ist ein zentraler Bestandteil vieler Analyseaufgaben. Unternehmen möchten verstehen, wie sich ihre Kunden verhalten, um gezielte Marketingmaßnahmen zu entwickeln oder Abwanderungsrisiken frühzeitig zu erkennen.

Eine typische Business-Frage lautet:
„Wie viele Kunden sind in den letzten 6 Monaten abgewandert?“

Mit SQL lässt sich diese Frage schnell beantworten, indem man die Anzahl der Kunden zählt, die in den letzten sechs Monaten keinen Kauf getätigt haben.


SELECT COUNT(DISTINCT kunde_id) AS Abgewanderte_Kunden
FROM kunden
WHERE last_purchase_date < DATE_SUB(NOW(), INTERVAL 6 MONTH);
  

Diese Abfrage zählt alle eindeutigen Kunden-IDs, deren letztes Kaufdatum älter als sechs Monate ist.

Weitere häufige Fragen in der Kundensegmentierung sind:

  • „Wie unterteilen wir Kunden nach Kaufhäufigkeit?“
    Hierfür eignen sich Funktionen wie NTILE, um Kunden in Segmente (z. B. nach RFM-Analyse) einzuteilen.
  • „Zeige die Top 10% der umsatzstärksten Kunden.“
    Mit PERCENT_RANK() oder anderen Quantilfunktionen lassen sich solche Ranglisten erstellen.

Die Segmentierung erlaubt es, Kunden gezielt zu analysieren und die richtigen Maßnahmen abzuleiten.

Kategorie 3: Produktperformance

Die Analyse der Produktperformance ist für Unternehmen entscheidend, um Verkaufsstrategien zu optimieren und Trends zu erkennen. Besonders interessant ist, welche Produkte häufig zusammen gekauft werden – eine klassische Warenkorbanalyse.

Eine typische Frage lautet:
„Welche Produkte werden häufig zusammen gekauft?“

Mit einer SQL-Abfrage, die Bestellpositionen miteinander verknüpft, lässt sich diese Frage beantworten:


SELECT 
  a.produkt_id AS Produkt_A,
  b.produkt_id AS Produkt_B,
  COUNT(*) AS Häufigkeit
FROM bestellpositionen a
JOIN bestellpositionen b 
  ON a.bestellung_id = b.bestellung_id 
  AND a.produkt_id < b.produkt_id
GROUP BY Produkt_A, Produkt_B
ORDER BY Häufigkeit DESC
LIMIT 10;
  

Diese Abfrage sucht Paare von Produkten, die in derselben Bestellung vorkommen, zählt ihre gemeinsame Häufigkeit und zeigt die Top 10 häufigsten Kombinationen.

Weitere relevante Fragen in der Produktperformance sind zum Beispiel:

  • „Wie lange dauert es im Schnitt, bis ein Produkt ausverkauft ist?“
    Diese Frage lässt sich mit Funktionen wie DATEDIFF und Lagerdaten beantworten, indem man den Zeitraum zwischen Wareneingang und Ausverkauf berechnet.

Solche Analysen helfen dabei, Produktempfehlungen zu verbessern, Lagerbestände besser zu planen und Verkaufschancen zu erhöhen.

Kategorie 4: Mitarbeiterleistung

Die Leistung von Mitarbeitern zu messen ist ein wichtiger Aspekt im Vertrieb und Kundenmanagement. Unternehmen möchten wissen, welcher Vertriebsmitarbeiter besonders erfolgreich ist, um gezielte Förderungen oder Anreize zu setzen.

Eine typische Business-Frage lautet:
„Welcher Vertriebsmitarbeiter hat die höchste Konversionsrate?“

Diese Frage lässt sich mit einer SQL-Abfrage beantworten, die das Verhältnis der erfolgreichen Abschlüsse zu allen Kundeninteraktionen berechnet:


SELECT 
  mitarbeiter_id,
  COUNT(CASE WHEN status = 'verkauft' THEN 1 END) / COUNT(*) * 100 AS Konversionsrate
FROM kundeninteraktionen
GROUP BY mitarbeiter_id
ORDER BY Konversionsrate DESC;
  

Hierbei werden alle Interaktionen gezählt und die Anzahl der abgeschlossenen Verkäufe als Prozentwert ermittelt, was die Konversionsrate ergibt.

Solche Analysen helfen, die Effektivität einzelner Mitarbeiter zu bewerten und gezielte Maßnahmen zur Verbesserung zu planen.

Kategorie 5: Trendanalyse

Trendanalysen helfen dabei, saisonale oder wiederkehrende Muster im Kaufverhalten zu erkennen. Unternehmen können dadurch ihre Lagerhaltung und Marketingkampagnen besser planen.

Eine typische Business-Frage lautet:
„Gibt es saisonale Kaufmuster bei Produkt X?“

Mit SQL kann man beispielsweise die durchschnittliche Bestellmenge pro Monat für ein bestimmtes Produkt ermitteln:


SELECT 
  EXTRACT(MONTH FROM bestelldatum) AS Monat,
  AVG(anzahl) AS Durchschnittliche_Bestellmenge
FROM bestellungen
WHERE produkt_id = 'X'
GROUP BY Monat
ORDER BY Monat;
  

Diese Abfrage zeigt, in welchen Monaten Produkt X besonders häufig oder selten gekauft wird.

Weitere mögliche Trendanalysen könnten sich mit Umsatzentwicklung oder Kundenzuwachs über die Zeit beschäftigen.

Pro-Tipps für Data Analysts

Als Data Analyst ist es wichtig, nicht nur SQL-Abfragen zu schreiben, sondern auch die Business-Fragen richtig zu verstehen und die Datenqualität zu sichern. Hier einige Tipps, die deine Arbeit erleichtern und die Ergebnisse zuverlässiger machen:

  • Frage präzisieren:
    Viele Begriffe wie „Umsatzwachstum“ können unterschiedlich interpretiert werden – zum Beispiel als Jahresvergleich (YoY), Monatsvergleich (MoM) oder KPI-basiert. Kläre genau, was gefragt ist, bevor du mit der Analyse startest.
  • Datenqualität prüfen:
    Bereinige vor Aggregationen immer deine Daten. Entferne doppelte Einträge, kontrolliere auf fehlende Werte (NULLs) und korrigiere offensichtliche Fehler.
  • Performance optimieren:
    Bei großen Datensätzen können Common Table Expressions (CTEs) oft effizienter sein als verschachtelte Subqueries. Nutze außerdem Indizes und prüfe Execution-Pläne, um langsame Abfragen zu verbessern.
  • Tool-Kombination nutzen:
    SQL eignet sich hervorragend für die Datenaufbereitung. Für komplexe statistische Analysen kannst du SQL mit Python oder R kombinieren – beispielsweise für Korrelationen oder Machine Learning.

Diese Tipps helfen, genauere und performantere Analysen zu erstellen und letztlich bessere Entscheidungen zu unterstützen.

Fazit: Vom Business-Jargon zum SQL-Query

Das Übersetzen von Business-Fragen in SQL-Queries ist eine Kernkompetenz für Data Analysts und BI-Entwickler. Nur wer die Anforderungen des Business genau versteht und sie in messbare Metriken und SQL-Logik überträgt, kann aussagekräftige Analysen liefern.

Wichtig ist dabei, vor dem Schreiben der Abfragen eine Checkliste abzuarbeiten:

  • Welcher Zeitraum soll betrachtet werden?
  • Welche Segmente sind relevant? (Kunden, Produkte, Regionen)
  • Welche Metriken sollen berechnet werden? (Umsatz, Anzahl, Marge)
  • Welcher Vergleich ist sinnvoll? (Vorperiode, Durchschnitt, Benchmark)

Mit dieser Herangehensweise gelingt es, präzise und effiziente SQL-Abfragen zu erstellen, die die Business-Fragen zuverlässig beantworten.