Zurück zur Artikelliste Artikel
13 Leseminuten

Diagrammerstellung mit SQL: Ein Leitfaden für Einsteiger

SQL, oft auch als Structured Query Language bekannt, ist ein wertvolles Werkzeug für Datenanalysten. Es ermöglicht Ihnen, Ihre Daten abzufragen, zu aktualisieren und zu organisieren. Dies ist eine wichtige Voraussetzung für die Erstellung von Diagrammen. In diesem Artikel erfahren Sie, wie Sie Daten mit SQL für die Verwendung in Datenvisualisierungen vorbereiten können.

Rohdaten sind nur dann wertvoll, wenn Sie wissen, wie Sie sie bereinigen und organisieren können. Die richtige Aufbereitung von Daten für Diagramme ist daher ein wichtiger Schritt bei der Erstellung fesselnder und informativer Diagramme. In diesem Artikel erfahren Sie, wie Sie SQL verwenden, um Daten zu bereinigen, die Sie in einem Diagramm verwenden möchten.

Diagramme sind visuelle Darstellungen von Daten, wie z. B. Balkendiagramme, Liniendiagramme, Tortendiagramme, Boxplots und viele andere. Ihr Ziel ist es, komplexe Daten in klare, umsetzbare Erkenntnisse umzuwandeln. Dies ist besonders wichtig, da Datenanalysten in der Lage sein müssen, ihre Erkenntnisse dem Rest ihres Teams und anderen Beteiligten zu vermitteln.

SQL eignet sich zwar hervorragend zur Datenbereinigung und -aufbereitung, verfügt aber nicht über eine integrierte Diagrammfunktion. Es gibt jedoch zahlreiche externe Ressourcen für diese Aufgabe, darunter Tableau, Looker Studio, Power BI oder Python-Bibliotheken. Abgesehen davon ist die Qualität Ihrer Diagramme nur so gut wie die Daten, die zur Erstellung der Diagramme verwendet werden. Wenn die Daten nicht richtig aufbereitet sind, können Ihre Diagramme keine aussagekräftige Botschaft vermitteln.

Aus diesem Grund ist SQL nach wie vor äußerst wichtig. Und es gibt keinen besseren Zeitpunkt als jetzt, um mit unserem Kurs SQL für Datenanalyse zu beginnen. In diesem Kurs lernen Sie alle wichtigen Fähigkeiten zur Aufbereitung von Daten für Diagramme.

In diesem Artikel zeigen wir Ihnen, wie Sie SQL verwenden, um Ihre Daten für die Erstellung von Diagrammen mit externen Tools vorzubereiten. Es werden auch Beispiele und SQL-Abfragen zum Üben bereitgestellt. Also, dann fangen wir doch einfach mal an!

Vorbereitung auf die Erstellung von Diagrammen mit SQL

Die Datenvorbereitung ist ein wichtiger erster Schritt zur Erstellung ansprechender Datenvisualisierungen. Mit SQL können wir Daten mit nur wenigen Zeilen Code effizient organisieren, aggregieren und filtern. Werfen wir einen Blick auf einige Beispiele für Diagramme, die Sie erstellen können. (P.S. Hier ist unser Spickzettel für SQL zur Datenanalyse, damit Sie bei Bedarf einige der Funktionen nachschlagen können).

1. Balkendiagramm

Ein Balkendiagramm ist eine Art von Diagramm, das rechteckige Balken enthält, die verschiedene Datenkategorien darstellen. Die Höhe (bei einem vertikalen Diagramm) oder die Länge (bei einem horizontalen Diagramm) des Balkens stellt den Wert der entsprechenden Kategorie dar.

Balkendiagramme sind nützlich, um Daten aus verschiedenen Kategorien zu vergleichen, z. B. Umsatz nach Produkt, Bestellungen nach Region usw. Sie können die Unterschiede oder Trends innerhalb dieser Kategorien auf einen Blick erkennen.

Beispiel Balkendiagramm

Hier ist ein Beispiel für ein Balkendiagramm. Wir werden die SQL-Abfrage für dieses Diagramm später im Artikel erstellen.

Diagrammerstellung mit SQL

Welche Informationen benötigen wir, um ein Balkendiagramm zu erstellen?

  • Beschriftungen: Wir benötigen die Bezeichnungen für jeden Balken auf der X-Achse (horizontal). Die Abfrage sollte die Bezeichnungen als eine der Spalten in der SELECT Klausel zurückgeben.
  • Balkenhöhen: Die Höhe der Balken richtet sich nach der Y-Achse (vertikal). Dies ist eine weitere Spalte, die in einer SELECT berechnet werden sollte. Die Balkenhöhe wird normalerweise mit einer Aggregatfunktion wie SUM() oder COUNT() und GROUP BY unter Verwendung der X-Achsenbeschriftungen berechnet.
  • Sortieren: Optional können wir die Balken im Diagramm in einer bestimmten Reihenfolge anordnen.

Beispiel für die Produktkategorie Umsatz

Stellen Sie sich vor, Sie möchten den Gesamtumsatz 2023 für jede Produktkategorie analysieren. Mit Hilfe von SQL können Sie die Daten für das Balkendiagramm mit der folgenden Abfrage vorbereiten:

SELECT 
    product_category, 
    SUM(sales_amount) AS total_sales
FROM 
    sales_data
WHERE 
    sale_date BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY 
    product_category
ORDER BY 
    total_sales DESC;

Erläuterung:

  • SELECT product_category, SUM(sales_amount) AS total_sales: Zunächst wählen wir die gewünschten Spalten aus und verwenden die Aggregatfunktion SUM auf sales_amount, um die Umsätze pro Produktkategorie zu aggregieren. Dies wird die Beschriftung der X-Achse und die Höhe des Balkens sein.
  • WHERE sale_date BETWEEN '2023-01-01' AND '2023-12-31: Wir wollen nur die Umsätze aus dem Jahr 2023 auswerten, also filtert diese Klausel die Daten so, dass sie nur die Umsätze aus dem Jahr 2023 enthalten.
  • GROUP BY product_category: Hier gruppieren wir unsere Daten nach product_category, um die Gesamtverkäufe zusammenzufassen.
  • ORDER BY total_sales DESC: Schließlich sortieren wir die Daten in absteigender Reihenfolge, so dass die höchsten Umsätze an erster Stelle und die niedrigsten Umsätze an letzter Stelle stehen.

2. Liniendiagramm

Ein Liniendiagramm ist ein Diagrammtyp, bei dem die Datenpunkte durch eine Linie verbunden sind. Dieses Diagramm eignet sich hervorragend zur Visualisierung von Datentrends im Zeitverlauf, z. B. zur Verfolgung von Website-Aktivitäten über einen Monat, zur Analyse von Umsatztrends über ein Jahr usw.

Beispiel Liniendiagramm

Hier sehen Sie ein Beispiel für ein Liniendiagramm:

Diagrammerstellung mit SQL

Welche Informationen benötigen wir, um ein Liniendiagramm zu erstellen?

  • Beschriftungen: Wir benötigen Beschriftungen (in der Regel Datumsangaben) für die X-Achse.
  • Höhe derLinie: Für jeden Punkt auf der Linie benötigen wir eine Linienhöhe. Dabei kann es sich um den Wert an diesem Datum handeln, der entweder aus der Datenbank ausgewählt oder mit einer Aggregatfunktion berechnet wurde. Es kann auch ein anderer Wert sein, z. B. ein gleitender Durchschnitt, der mit Hilfe von Fensterfunktionen berechnet wird.
  • Sortieren: Um sicherzustellen, dass unsere Daten korrekt nach Datum geordnet sind, verwenden wir ORDER

Beispiel für Handyverkäufe

Nehmen wir an, wir möchten die Spitzentage für den Verkauf von Mobiltelefonen ermitteln, indem wir die monatlichen Verkäufe unserer Website überwachen. Zu diesem Zweck können wir den gleitenden Durchschnitt der Verkaufsdaten berechnen, um Schwankungen auszugleichen.

Zunächst werden wir die Abfrage in zwei Teile aufteilen: eine Unterabfrage, die die erforderlichen Daten sammelt, und eine Hauptabfrage, die den gleitenden Durchschnitt anhand dieser Daten errechnet. Mit SQL könnten wir die Unterabfrage wie folgt vorbereiten:

SELECT 
    DATE(sale_date) AS sale_day, 
    COUNT(*) AS mobile_sales_count
FROM 
    sales_data
WHERE 
    device_type = 'mobile'
GROUP BY 
    sale_day
ORDER BY 
    sale_day ASC;

Erläuterung:

  • SELECT DATE(sale_date) AS sale_day, COUNT(*) AS mobile_sales_count: Extrahiert das Datum aus sale_date und zählt die Handyverkäufe für jeden Tag.
  • WHERE device_type = 'mobile': Filtert die Spalte device_type, um nur Verkäufe von mobilen Geräten zu berücksichtigen.
  • GROUP BY sale_day: Gruppiert die Daten für jeden Tag.
  • ORDER BY sale_day ASC: Sortiert die Ergebnisse nach Datum in aufsteigender Reihenfolge.

Wir gehen dann noch einen Schritt weiter, indem wir wie erwähnt einen gleitenden Durchschnitt verwenden. Ein gleitender Durchschnitt glättet kurzfristige Schwankungen in den Daten und trägt dazu bei, Schwankungen zu minimieren. Eine Fluktuation ist eine kurzfristige Abweichung in den Daten, z. B. tägliche Spitzen oder Rückgänge, die größere Trends verbergen können.

Durch die Verwendung eines gleitenden 7-Tage-Durchschnitts können wir den Durchschnitt für den aktuellen Tag und die vorangegangenen sechs Tage ermitteln. Dadurch werden die täglichen Abweichungen geglättet und die wöchentlichen Trends sichtbar gemacht. Durch Ändern unserer vorherigen Abfrage können wir genau das tun:

SELECT 
    sale_day, 
    AVG(mobile_sales_count) OVER (ORDER BY sale_day ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_avg
FROM (
    SELECT 
        DATE(sale_date) AS sale_day, 
        COUNT(*) AS mobile_sales_count
    FROM 
        sales_data
    WHERE 
         device_type = 'mobile'
    GROUP BY 
        DATE(sale_date)
) daily_sales;

Erläuterung:

  • SELECT sale_day, AVG(mobile_sales_count) OVER (ORDER BY sale_day ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS moving_avg: Dies ist eine Fensterfunktion, die einen gleitenden 7 -Tage-Durchschnitt (aktueller Tag + 6 vorangegangene Tage) der Handyverkäufe berechnet, geordnet nach sale_day.
  • FROM (...) daily_sales: Hier passen wir die vorherige Abfrage als Unterabfrage an und benennen sie daily_sales.

Mehr über Window-Funktionen finden Sie in unserem Artikel SQL Window Function Example With Explanations.

3. Kreisdiagramm

Ein Tortendiagramm ist ein Diagramm, das einen Kreis in Abschnitte oder Scheiben unterteilt, wobei jeder Abschnitt einen Teil des Ganzen darstellt. Diese Art von Diagramm ist besonders nützlich für die Darstellung von Proportionen oder Prozentsätzen, wie z. B. bei der demografischen Verteilung, der Aufschlüsselung von Einnahmequellen und mehr.

Beispiel Tortendiagramm

Ein Beispiel für ein Kreisdiagramm könnte so aussehen:

Diagrammerstellung mit SQL

Welche Informationen benötigen wir, um ein Kreisdiagramm zu erstellen?

  • Beschriftungen: Wir benötigen Beschriftungen für jede Scheibe des Tortendiagramms.
  • Größe derScheibe: Wir müssen die Größe der einzelnen Scheiben berechnen.
  • Berechnung desProzentsatzes: Wir müssen den prozentualen Anteil jeder Gruppe an der Gesamtsumme berechnen.
  • Gruppierung: Normalerweise müssen wir nach Diagrammbeschriftungen gruppieren.

Beispiel für eine demografische Umsatzaufschlüsselung

Nehmen wir an, wir möchten den prozentualen Anteil der einzelnen demografischen Alterssegmente an den Umsätzen unseres Unternehmens ermitteln. Wir könnten die folgende Abfrage verwenden, um unsere Daten aufzubereiten:

SELECT 
    CASE 
        WHEN age < 18 THEN 'Below 18'
        WHEN age BETWEEN 18 AND 24 THEN '18-24'
        WHEN age BETWEEN 25 AND 34 THEN '25-34'
        WHEN age BETWEEN 35 AND 44 THEN '35-44'
        WHEN age BETWEEN 45 AND 54 THEN '45-54'
        WHEN age >= 55 THEN '55+'
    END AS age_group,
    SUM(sales_amount) AS total_sales, 
    SUM(sales_amount) * 100.0 / SUM(SUM(sales_amount)) OVER () AS pc_of_sales  
FROM 
    sales_data
WHERE 
    age IS NOT NULL  
GROUP BY 
    age_group; 

Erläuterung:

  • CASE ... END AS age_group: Mit der Anweisung CASE teilen wir das Alter unserer Kunden in bestimmte Altersgruppen ein. Jede Gruppe bildet ein Stück unseres Kreisdiagramms.
  • SUM(sales_amount) AS total_sales: Mit der Aggregatfunktion SUM() berechnen wir den Gesamtumsatz für jede Altersgruppe.
  • SUM(sales_amount) * 100.0 / SUM(SUM(sales_amount)) OVER () AS pc_of_sales: Mit Hilfe einer Fensterfunktion berechnen wir den prozentualen Anteil der einzelnen Altersgruppen am Gesamtumsatz.
  • WHERE age IS NOT NULL: Um die Daten zu bereinigen, filtern wir Zeilen mit NULL Werten in der Spalte age heraus.
  • GROUP BY age_group: Schließlich gruppieren wir die Daten nach den von uns definierten Altersgruppen, um die Umsätze für jede Kategorie zusammenzufassen.

4. Histogramm

Ein Histogramm ist ein Diagramm, das die Verteilung oder Streuung von Daten zeigt, indem es sie in Intervalle gruppiert. Dies ist besonders hilfreich, wenn wir nach Mustern und Trends in der Verteilung unserer Daten suchen. Dies ist häufig der Fall bei der Verteilung von Lieferzeiten, Verkaufsvolumen in verschiedenen Preisklassen und mehr.

Beispiel Histogramm

Diagrammerstellung mit SQL

Welche Informationen benötigen wir, um ein Histogramm zu erstellen?

  • Beschriftungen: Wir benötigen den Anfangs- und Endwert für jedes Feld. Hier verwenden wir 10-Minuten-Intervalle auf der X-Achse.
  • Balkenhöhen: Für jeden Bereich müssen wir die Höhe berechnen. Dies geschieht in der Regel mit einer Aggregatfunktion mit GROUP BY.
  • Sortieren: Normalerweise verwenden wir ORDER BY, so dass die Behälter vom niedrigsten zum höchsten sortiert werden.

Beispiel für die Verteilung von Lieferzeiten

Angenommen, Sie arbeiten für einen Lebensmittellieferanten und möchten die Schwankungen der Lieferzeiten in Barcelona ermitteln. Wir können unsere Daten dafür vorbereiten, indem wir die folgende SQL-Abfrage ausführen:

SELECT 
    FLOOR(delivery_duration / 10) * 10 AS bin_start, 
    (FLOOR(delivery_duration / 10) + 1) * 10 AS bin_end, 
    COUNT(*) AS no_of_orders
FROM 
    deliveries
WHERE
   region = ‘Barcelona’
GROUP BY 
    bin_start
ORDER BY 
    bin_start;

Explanation:

  • FLOOR(delivery_duration / 10) * 10 AS bin_start: Zuerst wollen wir unsere Intervalle erstellen. Zu diesem Zweck gruppieren wir delivery_duration in 10-Minuten-Intervalle. Damit wird die untere Grenze jedes Intervalls berechnet (bin_start).
  • (FLOOR(delivery_duration / 10) + 1) * 10 AS bin_end: Als Nächstes müssen wir die obere Grenze jedes Bereichs (bin_end) berechnen, indem wir 10 Minuten zu bin_start hinzufügen.
  • COUNT(*) AS no_of_orders: Nun zählen wir die Anzahl der Lieferungen, die in jeden 10-Minuten-Bereich fallen.
  • WHERE region = 'Barcelona': Um die Daten auf Barcelona zu beschränken, filtern wir unsere Spalte region.
  • GROUP BY bin_start: Wir gruppieren die Lieferungen nach jedem 10-Minuten-Intervall.
  • ORDER BY bin_start: Schließlich sortieren wir die Gruppen in aufsteigender Reihenfolge nach ihren Anfangszeiten.

5. Punktwolke

Zu guter Letzt werfen wir noch einen Blick auf das Streudiagramm. Mit diesem Diagramm kann die potenzielle Beziehung zwischen bis zu drei Variablen durch Auftragen von Datenpunkten visualisiert werden. So lassen sich Korrelationen und Zusammenhänge in den Daten aufzeigen, z. B. zwischen Werbekosten und Umsatz oder zwischen Mitarbeiterzufriedenheit und Mitarbeiterbindung.

Beispiel eines Streudiagramms

Diagrammerstellung mit SQL

Welche Informationen benötigen wir, um ein Streudiagramm zu erstellen?

  • X- und Y-Koordinaten für jeden Punkt.
  • Beschriftung: Optional benötigen wir eine Beschriftung für jeden Punkt, um jedem Punkt eine Farbe (wie in unserem Beispieldiagramm) oder eine Bezeichnung zu geben.

Diese Daten können einfach aus einer Datenbank ausgewählt oder berechnet werden, wie in unserem Beispiel unten.

Beispiel für die Werbewirksamkeit

Angenommen, wir möchten die Wirksamkeit verschiedener Werbeformen in den letzten zwei Jahren analysieren, indem wir ihre Auswirkungen auf den Umsatz beobachten. Mit SQL können wir die Daten wie folgt aufbereiten:

SELECT 
    DATE_FORMAT(sd.sale_date, '%Y-%m') AS year_month, 
    mc.advertising_type, 
    SUM(mc.advertising_spend) AS total_advertising_spend, 
    SUM(sd.sales) AS total_sales
FROM 
    marketing_campaigns mc
JOIN 
    sales_data sd ON mc.campaign_id = sd.campaign_id
WHERE 
    sd.sale_date BETWEEN '2022-01-01' AND '2023-12-31'
GROUP BY 
    month, mc.advertising_type
ORDER BY 
    year_month;

Erläuterung:

  • Jeder Punkt im Diagramm entspricht einem Monat und einer Werbeform:
    • DATE_FORMAT(sd.sale_date, '%Y-%m') AS year_month: Zuerst extrahieren wir das Jahr und den Monat aus sale_date.
    • mc.advertising_type: Hier wählen wir die Werbeart aus, die als Farbton in unserem Streudiagramm verwendet wird. Der Farbton ist im Wesentlichen eine dritte Ebene, die wir mit Farbe hinzufügen können, um Kategorien in einem Diagramm zu unterscheiden.
  • SUM(mc.advertising_spend) AS total_advertising_spend: Wir aggregieren die Gesamtwerbeausgaben für jeden Monat und jeden Werbetyp mit SUM().
  • SUM(sd.sales) AS total_sales: Auch hier verwenden wir SUM(), um den Gesamtumsatz zu aggregieren.
  • JOIN sales_data sd ON mc.campaign_id = sd.campaign_id: Da sich die gewünschten Daten in zwei separaten Tabellen befinden, verknüpfen wir die marketing_campaigns Tabelle mit der sales_data Tabelle anhand der gemeinsamen Spalte campaign_id.
  • WHERE sd.sale_date BETWEEN '2022-01-01' AND '2023-12-31': Um uns auf die Daten von 2022 und 2023 zu konzentrieren, filtern wir das Verkaufsdatum.
  • GROUP BY year_month, mc.advertising_type: Wir gruppieren die Daten nach unseren Diagrammkategorien, so dass wir eine Gesamtsumme pro Monat und Jahr pro Werbeart erhalten.
  • ORDER BY year_month: Schließlich ordnen wir die Daten in aufsteigender Reihenfolge nach Monaten.

Wenn Sie noch mehr Tipps und Tricks zur Nutzung von SQL für die Erstellung von Diagrammen erfahren möchten, sollten Sie sich unseren Artikel Datenvisualisierung mit SQL ansehen: Ein Leitfaden für Datenanalysten.

Erstellen von Diagrammen mit aus SQL exportierten Daten

Nachdem unsere Daten aufbereitet sind, müssen wir spezielle Tools verwenden, um Diagramme außerhalb von SQL zu erstellen. Sehen wir uns einige der Alternativen an und wie Sie Ihre SQL-Daten in diese Tools importieren können.

1. python

Python bietet Bibliotheken wie Matplotlib und seaborn für die Erstellung verschiedener Diagramme. Mit der Python-Bibliothek pandas können Sie die Daten aus SQL importieren und visualisieren. Im Folgenden wird beschrieben, wie das geht.

import pandas as pd

# Load the CSV file
df = pd.read_csv('/path/to/sql_export.csv')

# Preview the DataFrame
print(df.head())
  • Schritt 3: Erstellen Sie ein Diagramm mit einer Python-Bibliothek: Sobald die Daten importiert sind, können wir unser Diagramm erstellen. In diesem Beispiel werden wir ein Balkendiagramm mit Matplotlib und seaborn erstellen:
import matplotlib.pyplot as plt
import seaborn as sns

# Create a bar chart
plt.figure(figsize=(10, 6))
sns.barplot(x='product_category', y='total_sales', data=df, palette='viridis')

# Customize the chart
plt.title('Total Sales by Product Category (2023)', fontsize=16)
plt.xlabel('Product Category', fontsize=12)
plt.ylabel('Total Sales', fontsize=12)
plt.xticks(rotation=45)
plt.tight_layout()

# Show the chart
plt.show()

2. tableau

Tableau ist eine benutzerfreundliche Business-Intelligence-Lösung, die direkt mit SQL-Datenbanken verbunden werden kann und dynamische, interaktive Dashboards erstellt. Mit dem benutzerdefinierten SQL-Editor kann Tableau sogar Ihre SQL-Abfragen direkt unterstützen. Es gibt auch Konnektoren für wichtige Datenbanken wie MySQL, PostgreSQL und Snowflake.

3. power BI

Power BI ist eine beliebte Microsoft-Anwendung, mit der Sie interaktive Berichte und Dashboards erstellen können. Auch sie bietet native Unterstützung für SQL Server und andere Datenbanken, so dass Sie direkte SQL-Abfragen durchführen können.

4. looker Studio

Looker Studio (ehemals Google Data Studio) ist eine Cloud-basierte Anwendung zur Entwicklung gemeinsam nutzbarer, interaktiver Dashboards. Sie eignet sich perfekt für Benutzer, die bereits mit der Google-Umgebung vertraut sind. Es ist mit Datenbanken wie BigQuery, MySQL und PostgreSQL kompatibel und unterstützt benutzerdefinierte Abfragen.

Lernen Sie SQL für Diagramme und Datenanalyse

SQL ist die Grundlage der Datenanalyse und spielt daher eine wichtige Rolle bei der Erstellung von Diagrammen. Obwohl SQL über keine integrierten Diagrammwerkzeuge verfügt, liegt seine Stärke in der Aufbereitung und Anordnung von Daten für Datenvisualisierungen. Die Verwendung von SQL in Verbindung mit Tools wie Python, Tableau, Power BI oder Looker Studio verbessert Ihre Fähigkeit, umsetzbare Erkenntnisse zu gewinnen und diese effektiv zu präsentieren.

Wenn Sie noch keine Erfahrung mit SQL haben und Ihre Kenntnisse verbessern möchten, ist jetzt der richtige Zeitpunkt, damit anzufangen. Die Beherrschung von SQL wird nicht nur Ihren Datenaufbereitungsprozess beschleunigen, sondern auch Ihre Fähigkeit verbessern, visuell ansprechende Diagramme und Dashboards zu erstellen.

Beginnen Sie noch heute damit, SQL zu lernen - mit unserem Kurs SQL for Data Analysis! In unserem Artikel Fähigkeiten, die jeder Datenanalyst haben sollte, können Sie sich auch mit anderen Fähigkeiten befassen, die für Ihre Karriere wertvoll sein könnten. Viel Spaß beim Lernen!