Zurück zur Artikelliste Artikel
10 Leseminuten

Diese SQL-Abfragen werden Ihnen bei der Datenanalyse helfen

Müssen Sie Ihre täglichen Datenanalyseaufgaben rationalisieren? Dieser Artikel erklärt, wie einfache SQL-Abfragen dabei helfen können.

Wenn Sie eine Karriere in einem Unternehmen oder in einem Bereich planen, in dem Sie mit Daten arbeiten, sind Sie sicher schon einmal mit SQL (Structured Query Language) in Berührung gekommen. SQL wurde erstmals in den 1970er Jahren entwickelt und ist nach wie vor der Industriestandard für die Interaktion mit Datenbanken. Viele von Ihnen haben vielleicht schon beschlossen, diese Sprache zu erlernen, da sie so leistungsfähig ist. Vielleicht fragen Sie sich aber auch, ob es sich überhaupt lohnt, sie zu lernen.

SQL ist sicherlich eine der wertvollsten Fertigkeiten für Bewerber. Für Positionen wie Datenanalysten oder Dateningenieure ist SQL Ihr tägliches Brot. In anderen Positionen mag es nicht so notwendig erscheinen. Ich bin jedoch der festen Überzeugung, dass das Erlernen von SQL Ihnen bei der Arbeit mit Daten einen Vorteil verschafft, der Ihre Geschäftsentscheidungen robuster macht. Sie werden in der Lage sein, große Datenmengen bequem zu analysieren und Ihre Ergebnisse in einer prägnanten Art und Weise für jedes Publikum zu präsentieren.

In diesem Artikel gehe ich auf die grundlegenden SQL-Abfragen und -Konstrukte ein, mit denen Sie Ihre Datenanalyse beginnen können. Doch bevor ich damit beginne, möchte ich Ihnen erläutern, was SQL ist und wie es allgemein angewendet wird.

Was ist SQL?

SQL ist eine Standardsprache für den Zugriff auf und die Bearbeitung von Datenbanken. Kurz gesagt, sie hilft Ihnen, mit Ihrer Datenbank zu "sprechen".

Sie können damit bereits in der Datenbank gespeicherte Informationen abrufen, neue Tabellen erstellen und Daten nach Bedarf speichern oder aktualisieren. Klingt einfach, oder? Ist es auch. Aber genau darin liegt auch seine Stärke: Sie ist einfach, aber sie liefert sehr nützliche Ergebnisse.

Unternehmen, die bei ihren Geschäftsentscheidungeneinen datenzentrierten Ansatz verfolgen, sind erfolgreich. Und wenn Sie Ihre Ideen auf der Grundlage von Datenanalysen präsentieren, ist es sehr viel wahrscheinlicher, dass Sie die Zustimmung Ihrer Interessengruppen erhalten. Tatsächlich benötigt jedes Unternehmen Datenanalysen in der einen oder anderen Form, um zu wachsen.

SQL hilft, diesen Prozess der Datenanalyse nahtlos zu gestalten. Es kann für zahllose datenbezogene Anwendungen eingesetzt werden, unabhängig von der Branche - Technik, Personalwesen, Finanzen, Marketing, Vertrieb - oder der Größe des Unternehmens. SQL kann Ihnen zum Beispiel helfen:

  • Analysieren Sie Kundendaten und gewinnen Sie Erkenntnisse über das Kundenverhalten.
  • Analysieren Sie Ihre PnL-Daten, um Ihre größten Kostenblöcke aufzudecken.
  • Allgemeine Finanzanalysen durchführen.
  • Verstehen, welche Abteilungen die teuersten Gehaltsabrechnungen/Mitarbeiter haben.
  • Finden Sie die Bereiche mit den meisten Fehlern oder Ineffizienzen in Ihrem Betrieb.
  • Identifizieren Sie Ihre leistungsstärksten Verkäufer, Filialen, Standorte, Regionen usw.
  • Analysieren Sie Engpässe auf Ihrer Website und andere datenbezogene Aufgaben.

Dies sind natürlich nur einige Beispiele. In Wirklichkeit ist diese Liste fast endlos. Als Geschäftsinhaber oder Manager möchten Sie vielleicht sogar, dass Ihre Mitarbeiter SQL lernen oder SQL-Kurse in Ihren Einführungsprozess integrieren. Zumindest werden Sie wahrscheinlich selbst SQL lernen wollen, um datengestützte Entscheidungen treffen zu können.

Nun, da Sie eine Vorstellung davon haben, was SQL ist und wie es verwendet werden kann, lassen Sie uns in einige grundlegende Abfragen eintauchen, damit Sie mit Ihren Datenanalyseaufgaben beginnen können.

Grundlegende SQL-Konstrukte und -Abfragen

Es gibt viel mehr SQL-Klauseln und -Funktionen, als wir in diesem Artikel behandeln können, aber die folgenden sind die Grundlage der meisten SQL-Abfragen.

Außerdem basieren die hier angeführten Beispiele auf einem begrenzten Datensatz. In Wirklichkeit werden Sie mit Tausenden von Zeilen und vielen Tabellen arbeiten. Aber keine Sorge, die Konstrukte bleiben unabhängig von der Datenmenge gleich. Diese grundlegenden Abfragen funktionieren mit jeder Datenbanktabelle. Eines der wichtigsten Unterscheidungsmerkmale von SQL ist die Skalierbarkeit; sie unterscheidet SQL von Excel und ähnlichen Tools.

Hier sind die grundlegenden Teile einer SQL-Abfrage:

1. SELECT und FROM

Das Schlüsselwort SELECT wird verwendet, um Daten aus der Datenbank abzurufen. Sie können die Namen der Spalten angeben (d. h. die Art der Daten, die Sie sehen möchten, z. B. Kundenname oder Alter), oder Sie können alle Daten in der Tabelle sehen.

Das Schlüsselwort FROM gibt die Tabelle(n) an, aus der die Daten abgerufen werden sollen. Angenommen, Sie möchten eine Liste aller Kunden in Ihrer Datenbank mit deren Namen und E-Mail-Informationen abrufen. Diese Informationen befinden sich in der Customers unten gezeigten Tabelle:

Customer_IDCustomer_NameEmailCityCountryAgeSex
1211Antonioxxxx@xxxx.comParisFR32Male
1212Paulineyyyy@yyyy.comLondonUK42Female
1213Matteozzzz@zzzz.comNew YorkUS28Male
1214Sethaaa@bb.comSydneyAU32Male
1215Agathabbb@ccc.comWashington DCUS24Female

Hier ist die Abfrage, die wir verwenden würden, um eine Liste aller Kundennamen mit ihren E-Mail-Adressen zu erhalten:

SELECT Customer_Name, Email
FROM Customers;

Und die Ausgabe:

Customer_NameEmail
Antonioxxxx@xxxx.com
Paulineyyyy@yyyy.com
Matteozzzz@zzzz.com
Sethaaa@bb.com
Agathabbb@ccc.com

Mehr über SELECT erfahren Sie im SQL für Anfänger Kurs und in dem Artikel How Do You Write a SELECT Statement in SQL, der viele Beispiele enthält.

2. WHERE

Angenommen, Sie betreiben eine E-Commerce-Website, die eine Werbeaktion für US-Kunden anbietet. In diesem Fall möchten Sie die E-Mail nur an US-Kunden senden; die Liste, die Sie auswählen möchten, sollte nur US-Kunden enthalten. In diesem Fall können Sie die WHERE Klausel verwenden.

Wenn Sie also diese Abfrage verwenden ...

SELECT Customer_Name, Email
FROM Customers
WHERE Country =  'US';

... erhalten Sie diese Ergebnisse:

Customer_NameEmail
Matteozzzz@zzzz.com
Agathabbb@ccc.com

Die WHERE Klausel wird verwendet, um bestimmte Zeilen auf der Grundlage des Wertes einer oder mehrerer Spalten zu filtern (in diesem Fall ist es die Spalte Country, die in den Ergebnissen nicht angezeigt wird).

Angenommen, Sie möchten nur Frauen aus den USA auflisten. Sie können in WHERE nach mehreren Bedingungen filtern, wenn Sie das Schlüsselwort AND verwenden:

SELECT Customer_Name, Email
FROM Customers
WHERE Country = 'US'
AND Sex = 'FEMALE';

Hier ist das Ergebnis:

Customer_NameEmail
Agathabbb@ccc.com

In der obigen Abfrage wird der Wert für Country und Sex für jede Zeile anhand der Bedingungen in der Klausel WHERE ausgewertet. Es werden nur die Zeilen zurückgegeben, bei denen beide Bedingungen erfüllt sind. Wenn Sie die Ergebnisse zurückgeben möchten, wenn eine (oder eine beliebige) der WHERE -Bedingungen wahr ist, verwenden Sie das Schlüsselwort OR:

SELECT Customer_Name, Email
FROM Customers
WHERE Country = 'US'
OR Sex = 'FEMALE';

Damit werden alle weiblichen Kunden sowie alle Kunden, die in den USA leben, ausgewählt. Beachten Sie den Unterschied in den Ergebnissen:

Customer_NameEmail
Paulineyyyy@yyyy.com
Matteozzzz@zzzz.com
Agathabbb@ccc.com

Benötigen Sie weitere Ressourcen für die WHERE Klausel? Sehen Sie sich diese Artikel an:

3. ORDER BY

Angenommen, Sie haben eine andere Tabelle in Ihrer Datenbank, die Orders Tabelle.

Order_IdItemQuantityCustomer_IdTotal_Value
23A62411212$100
22Ae3431213$210
13A21141213$249
11AXXX41212$212

Sie möchten die wichtigsten Bestellungen und deren Details sehen. Eine Möglichkeit, dies zu tun, besteht darin, die Bestellungen in absteigender Reihenfolge (10-1, Z-A) nach Wert aufzulisten. Sie können eine Abfrage wie diese verwenden:

SELECT *
FROM Orders
ORDER BY Total_Value DESC;

Und Sie würden erhalten:

Order_IdItemQuantityCustomer_IdTotal_Value
13A21141213$249
11AXXX41212$212
22Ae3431213$210
23A62411212$100

Die Verwendung eines '*' nach SELECT weist die SQL-Engine an, alle Spalten einer Tabelle abzurufen. Die ORDER BY Klausel weist an, dass die Ergebnisse in einer bestimmten Reihenfolge angezeigt werden sollen. Standardmäßig werden die Ergebnisse in aufsteigender Reihenfolge (1-10, A-Z) zurückgegeben; da wir jedoch das Schlüsselwort DESC ausdrücklich erwähnen, werden unsere Ergebnisse in absteigender Reihenfolge zurückgegeben.

Wenn Sie mehr darüber wissen möchten, lesen Sie den hervorragenden Detailed Guide to SQL ORDER BY.

4. CASE

Normalerweise hat ein Unternehmen Tausende von Zeilen in der Orders Tabelle. Sie möchten vielleicht nicht immer den Gesamtwert jeder Bestellung sehen. Stattdessen möchten Sie sie vielleicht auf der Grundlage des Wertes oder einer anderen Logik kategorisieren.

Wenn Sie die Bestellungen in die Kategorien "Hoch" oder "Niedrig" einteilen möchten - je nachdem, ob der Bestellwert über oder unter 150 $ liegt - können Sie das Konstrukt CASE verwenden:

SELECT Order_Id, Total_Value
       CASE WHEN Total_value > 150 THEN 'HIGH' 
            WHEN Total_value < 150 THEN 'LOW' 
            ELSE 'MEDIUM' END as Order_Category
FROM Orders;

Und das ist, was Sie erhalten würden:

Order_IdTotal_ValueOrder_Category
13$249HIGH
11$212HIGH
22$210HIGH
23$100LOW

In dieser Abfrage wird jede Zeile durch die Funktion CASE ausgewertet. Den Zeilen wird eine Kategorie zugewiesen, die auf der ersten Bedingung (d. h. WHEN .. THEN ..) basiert, die als wahr ausgewertet wird. Da die Aufträge mit den IDs 13, 11 und 22 über 150 $ liegen, werden sie als "HOCH" kategorisiert. Der Auftrag mit der ID 23 wird als 'LOW' eingestuft.

ELSE gibt einen Standardrückgabewert an, wenn keine der Bedingungen für eine Zeile als wahr bewertet wird.

Im Blog LearnSQL.de finden Sie mehrere interessante Artikel über die Verwendung von CASE in SQL-Abfragen. Hier sind nur einige davon:

5. GROUP BY

Um Erkenntnisse aus großen Datensätzen zu gewinnen, ist es oft sinnvoll, ähnliche Elemente zu gruppieren. Wir können diese Informationen nutzen, um fundierte Entscheidungen zu treffen; die Gruppierung der Daten hilft uns, Muster, Verhaltensweisen oder Metriken zu finden. Diese Gruppierung wird als Aggregation bezeichnet; sie kann mit der SQL-Klausel GROUP BY erreicht werden.

Im Allgemeinen verwenden Sie eine Funktion, um die Gruppenmetrik zu berechnen. Häufig verwendete Aggregatfunktionen sind SUM(), COUNT(), AVG(), MAX(), und MIN(). Mit diesen können Sie viele Dinge tun, z. B. die Gesamtausgaben für eine Abteilung berechnen oder die Anzahl der Mitarbeiter an jedem Standort zählen.

Nehmen wir an, Sie führen in Ihrem Unternehmen ein Angebot durch, bei dem Sie dem Kunden, der am meisten auf Ihrer Website ausgibt, ein kostenloses Geschenk schicken. Sie können hier die SQL-Klausel GROUP BY verwenden, um den Kunden mit dem höchsten Gesamtbestellwert zu ermitteln. Hier ist die Abfrage:

SELECT Customer_Id, SUM(Total_Value)
FROM Orders
GROUP BY Customer_Id
ORDER BY 2 DESC;

Hier ist das Ergebnis:

Customer_IdSUM(Total_Value)
1213$459
1212$312

Ihr Top-Kunde ist eindeutig Customer_Id 1213.

Die Abfrage funktioniert, indem zunächst alle eindeutigen Werte von Customer_Id ausgewählt werden und dann mit GROUP BY die Gesamtsumme für jeden Kunden ermittelt wird (d. h. der Gesamtwert aller seiner Bestellungen). Die ORDER BY 2 DESC Klausel zeigt die Ergebnisse in absteigender Reihenfolge nach SUM(Total_Value) an.

Weitere Informationen zu GROUP BY in der Datenanalyse finden Sie unter Was ist GROUP BY in SQL?

6. JOIN

Im vorherigen Beispiel haben wir die Customer_id des Kunden mit den höchsten Ausgaben gefunden. Aber die Orders Tabelle speichert jedoch keine anderen Kundeninformationen, wie z. B. den Namen oder Kommunikationsdetails. Sie müssten eine weitere Abfrage an die Tabelle schreiben Customers Tabelle schreiben, um die benötigten Daten abzurufen - oder Sie könnten einfach JOIN verwenden.

Mit der SQL JOIN-Funktion können Sie Informationen aus mehreren Tabellen in einer einzigen Abfrage auswählen. Normalerweise verbinden Sie zwei Tabellen auf der Grundlage eines oder mehrerer Spaltenwerte, die beiden Tabellen gemeinsam sind.

In unserem Fall können wir Customer_Id als das gemeinsame Feld verwenden. Es verbindet die Tabellen Customers und Orders Tabellen:

SELECT b.Customer_Name, b.Email, a.Customer_Id, SUM(Total_Value)
FROM Orders a
JOIN Customers b
ON a.Customer_id = b.Customer_Id
GROUP BY b.Customer_Name, b.Email, a.Customer_Id
ORDER BY 4 DESC;

Dies ist die Ausgabe:

Customer_NameEmailCustomer_IdSUM(Total_Value)
Matteozzzz@zzzz.com1213$459
Paulineyyyy@yyyy.com1212$312

Jetzt gibt die Abfrage auch die benötigten Kundendaten zurück. Sie vergleicht die Felder Customer_Id in beiden Tabellen und ruft dann nur die Zeilen ab, in denen sie eine Übereinstimmung der Werte findet. Beachten Sie, dass die Kunden-IDs 1211, 1214 und 1215 nicht in den Ergebnissen enthalten sind; für diese Werte gab es keine passenden Zeilen in der Tabelle Orders Tabelle für diese Werte.

Wenn Sie alle Werte anzeigen möchten - auch die, für die es in der anderen Tabelle keine Übereinstimmung gibt - können Sie einen so genannten OUTER JOIN verwenden. Joins können etwas kompliziert zu verstehen sein, aber sie sind eines der wichtigsten Konzepte in SQL. Schauen Sie sich diesen Kurs auf SQL-JOINs an. Er bietet 93 Übungen zu allen Arten von JOINs (es gibt mehrere).

Nächste Schritte zum Erlernen der SQL-Datenanalyse

Ich hoffe, diese Abfragen haben Ihnen genügend Anregungen gegeben, um mit der Datenanalyse mit SQL zu beginnen. Wenn Sie die Abfragen nicht perfekt verstehen, machen Sie sich keine Sorgen. Sie können unseren SQL für Anfänger Kurs besuchen, um sie zu üben, oder unseren umfassenden SQL von A bis Z Lernpfad, um einen vollständigen Überblick über die Möglichkeiten dieser Sprache zu erhalten. Letztendlich geht es nicht nur darum, SQL zu lernen, sondern es bei der täglichen Arbeit einzusetzen und sich anzugewöhnen, Datenanalysen zu nutzen, um Entscheidungen zu treffen.

Die Beispiele, die ich Ihnen gezeigt habe, sind natürlich sehr einfach. Ich wollte nur, dass Sie die wichtigsten Konzepte verstehen und sehen, wie einfach es ist, SQL-Abfragen zu erstellen. Wenn die Zeit reif ist, werden Sie lernen, anspruchsvollere Abfragen zu erstellen. Sie werden Ihnen die Arbeit erleichtern und vielleicht sogar die allgemeine Bewunderung Ihrer Kollegen (oder Ihres Chefs) auf sich ziehen. SQL-Kenntnisse sind großartig!

Sobald Sie die Grundlagen von SQL erlernt haben, sollten Sie sich bei der Vorbereitung von Geschäftsentscheidungen diese Fragen stellen:

  1. Welche Daten brauche ich, um meine Entscheidung zu unterstützen oder zu erleichtern?
  2. Habe ich diese Daten bereits in meiner Datenbank?
  3. Wenn ja, wie kann ich die Daten abrufen und darstellen, damit sie mir bei meiner Entscheidung helfen?

Datenorientiertheit ist eine Eigenschaft, die man sich mit etwas Übung aneignen kann. Also, üben Sie weiter und lernen Sie weiter!