Zurück zur Artikelliste Artikel
12 Leseminuten

SQL-Abfragen für Google Sheets

Erweitern Sie Ihre Datenanalysefähigkeiten durch die Verwendung von SQL-Abfragen für Google Sheets! Dieser umfassende Leitfaden zeigt Ihnen, wie Sie die QUERY-Funktionnutzen können , um die Leistungsfähigkeit von SQL mit der Zugänglichkeit von Google Sheets zu kombinieren!

Möchten Sie die Datenanalyse in Google Sheets schneller und leistungsfähiger machen? Mit der QUERY-Funktion können Sie Daten wie in SQL filtern, sortieren und analysieren - ohne Ihre Tabellenkalkulation zu verlassen! In diesem Artikel erfahren Sie alles, was Sie brauchen, um SQL-Abfragen für Google Sheets zu verwenden. Tauchen Sie ein!

Warum SQL mit Google Sheets verwenden?

Google Sheets ist ein beliebter Online-Tabellenkalkulationsdienst, der es den Nutzern ermöglicht, bequem von jedem Ort mit einer Internetverbindung aus zu arbeiten und zusammenzuarbeiten. Zusammen mit anderen Tabellenkalkulationen ist Google Sheets ein beliebtes Tool für die Datenanalyse, da es einfach zu bedienen und anfängerfreundlich ist.

Allerdings kann die Erstellung komplexer Berichte mit den in Google Sheets verfügbaren Grundfunktionen schwierig sein. Aufgaben wie das Filtern komplexer Daten, das Erstellen mehrstufiger Zusammenfassungen oder das Kombinieren großer Datensätze erfordern oft viel manuelle Arbeit, was den Prozess zeitaufwändig und fehleranfällig macht.

Genau hier kommt SQL ins Spiel! Mit Google Sheets können Sie SQL-ähnliche Abfragen direkt in Ihre Tabellenkalkulationen schreiben, die mit vorhandenen Daten arbeiten und Ihnen dynamische Antworten geben, genau wie normale Funktionen. Klingt interessant? Schauen wir uns an, wie Sie SQL mit Google Sheets verwenden können.

Verwendung der QUERY-Funktion von Google Sheets

Die Funktion QUERY von Google Sheets hat eine ähnliche Syntax wie SQL, so dass Sie alle Ihre vorhandenen Kenntnisse problemlos übertragen können. Wir werden die Syntax gleich im Detail besprechen, aber zuerst sehen wir uns einige Beispieldaten an, mit denen wir die Funktion QUERY vorstellen werden:

SQL-Abfragen für Google Sheets

Dies ist ein Auszug aus einer der Datenbanken in unserem SQL für Anfänger Kurs, vereinfacht, um unseren aktuellen Bedürfnissen zu entsprechen.

Allgemeine Syntax

Die allgemeine Syntax für die Verwendung der Funktion QUERY lautet wie folgt:

=QUERY(data_range, query, [headers])

Die Komponenten sind:

  • data_range ist der Bereich von Zeilen, in dem die Quelldaten gespeichert sind.
  • query ist die Abfrage selbst, die wir gleich besprechen werden.
  • headers ist die Anzahl der Kopfzeilen im Datenbereich (meistens 1 oder 0). Diese Angabe ist optional. Er wird automatisch gesetzt, wenn er nicht angegeben wird, so dass dieser Parameter in den meisten Fällen weggelassen wird.

Schauen wir uns nun einige Beispielabfragen an, die den oben genannten Datensatz verwenden. Hinweis: Hier und in allen folgenden Beispielen bedeutet data_range den Zeilenbereich für die Funktion QUERY, d. h. die Tabelle, in der die Daten für die SQL-Abfrage gespeichert sind.

Google Sheets vs. SQL-Beispielabfragen

Google Sheets

SQL

Erläuterung

=QUERY(data_range, "select *", 1)

SELECT *
FROM data_range;

Ruft alle Daten im Datenbereich ab.

=QUERY(data_range, "select *")

SELECT *
FROM data_range;

Ruft auch alle Daten im Bereich ab, lässt aber Google Sheets entscheiden, wie viele Kopfzeilen es gibt. Wir werden das Kopfzeilenargument von nun an vermeiden, da Google Sheets es zuverlässig ableiten kann.

=QUERY(data_range, "select A, B")

SELECT
  Department
  First_Name
FROM data_range;

Ruft nur die Abteilungsnamen und Vornamen der Mitarbeiter ab (gespeichert in den Spalten A und B).

Filtern von Daten

Die Syntax der QUERY-Funktion zum Filtern von Daten ist ähnlich wie die SQL-Syntax:

Google Sheets:

=QUERY(data_range, “select * where ”)

SQL:

SELECT * FROM data_range WHERE ;

Betrachten wir einige Beispiele dafür, wie die QUERY-Funktion im Vergleich zu SQL Daten filtert:

Google Sheets

SQL

Erläuterung

=QUERY(data_range, "select * where D > 3000")

SELECT *
FROM data_range
WHERE Salary > 3000;

Filtert nach Zahlen.
Ruft alle Daten für Mitarbeiter ab, deren Gehalt (Spalte D) über 3000 liegt.

=QUERY(data_range, "select * where A = 'IT'")

SELECT *
FROM data_range
WHERE Department = ‘IT’;

Filtert nach Text.
Ruft alle Daten für Mitarbeiter ab, die in der IT-Abteilung arbeiten (Spalte A).

=QUERY(data_range, "select * where E = ‘Trainee’ and D >= 3000”)

SELECT *
FROM data_range
WHERE Position = ‘Trainee’
  AND Salary >= 3000;

Filtert mit mehreren Bedingungen.
Ruft alle Daten für Auszubildende (Spalte E) ab, die ein Gehalt von 3000 oder mehr haben (Spalte D)

=QUERY(data_range, “select * where B starts with ‘J’”)

SELECT *
FROM data_range
WHERE First_Name LIKE ‘J%’;

Filtert nach einem bestimmten Teil einer Zeichenfolge.
Ruft alle Daten über Mitarbeiter ab, deren Name mit dem Buchstaben J beginnt.
Es gibt auch andere Funktionen desselben Typs in Google Sheets; die vollständige Liste finden Sie unten.

Die Bedingung WHERE kann Zahlen, Text und vieles mehr filtern:

  • Zahlen unterstützen alle diese Operatoren: <=, <, >, >=, =, !=, <> . Sowohl != als auch <> bedeuten "nicht gleich" und können austauschbar verwendet werden.
  • Um die Werte von null zu filtern, sollten Sie is null oder is not null verwenden. Beachten Sie, dass <column> = null and <column>!= null zu einem Fehler führt.
  • Innerhalb der Funktion QUERY stehen mehrere Funktionen zum Filtern von Textdaten zur Verfügung:
    • starts with Filtert nach den ersten Zeichen der Zeichenkette. starts with ‘A’ findet alle diese Zeichen: "Accounting", "Amelia", "A".
    • ends with Filter nach den letzten Zeichen der Zeichenkette. ends with ‘nt’ findet alle diese Zeichen: "management", "Ant", "nt".
    • contains filtert nach der Teilzeichenkette. contains ‘r’ findet alle diese Zeichen: "Harry", "Taylor", "r".
    • matches filtert mit regulären Ausdrücken (regex), d. h. einem Muster, das eine Zeichenfolge beschreibt.
    • like filtert ähnlich wie LIKE in SQL. In Sheets unterstützt es zwei Wildcards: % für die Übereinstimmung mit 0 oder mehr Zeichen und “_” für die Übereinstimmung mit einem Zeichen. like ‘_o%’ wird mit allen diesen Zeichen übereinstimmen: "Poole", "ooze", "to".

Um mehrere Bedingungen zu einer einzigen zu verbinden, können Sie die Schlüsselwörter und und oder verwenden:

  • <condition1> and <condition2> trifft nur zu, wenn beide zutreffen.
  • <condition1> or <condition2> ist wahr, wenn entweder eine oder beide wahr sind.

Um nach der Umkehrung der Bedingung zu filtern, können Sie das Schlüsselwort not verwenden: where D > 3000 würde das gleiche Ergebnis liefern wie where not D <= 3000.

Sortieren von Daten

Das Sortieren in der Funktion QUERY ist ähnlich wie das Sortieren in SQL. Hier ist die grundlegende Syntax:

Google Sheets:

=QUERY(data_range, “select * order by <column> [asc/desc]”)

SQL:

SELECT * FROM data_range ORDER BY <column> [ASC/DESC];

Schauen wir uns den Vergleich anhand einiger Beispiele an:

Google Sheets

SQL

Erläuterung

=QUERY(data_range, “select B order by B”)

SELECT First_Name
FROM data_range
ORDER BY First_Name;

Sortiert nach einer Spalte; die Endreihenfolge ist ASCRINGEND.

Gibt alle Vornamen der Mitarbeiter in alphabetischer Reihenfolge zurück.

=QUERY(data_range, “select A, B order by A, B desc”)

SELECT
  Department,
  First_Name
FROM data_range
ORDER BY
  Department,
  First_Name DESC;

Sortiert nach mehreren Spalten in unterschiedlicher Reihenfolge.

Gibt die Abteilungen und Namen der Mitarbeiter zurück, sortiert nach Abteilung in alphabetischer Reihenfolge und innerhalb jeder Abteilung nach Namen in umgekehrter alphabetischer Reihenfolge.

Wenn Sie die Sortierrichtung nicht angeben, wird standardmäßig aufsteigendverwendet. Das bedeutet, dass Zeichenketten in alphabetischer Reihenfolge angezeigt werden und Zahlen von der kleinsten bis zur größten Zahl angezeigt werden. Wenn Sie … order by A asc … explizit angeben, erhalten Sie dasselbe Ergebnis wie wenn Sie die Reihenfolge nicht angeben: … order by A ….

Wenn Sie für verschiedene Spalten unterschiedliche Sortierrichtungen angeben wollen, müssen Sie die Reihenfolge für jede Spalte angeben. Zum Beispiel wird diese ...

=QUERY(data_range, “select A, B order by A, B, C desc”)

... sortiert nur die Spalte C in absteigender Reihenfolge. Hier ist der richtige Weg, um alle Spalten in absteigender Reihenfolge zu sortieren:

=QUERY(data_range, “select A, B order by A desc, B desc, C desc”)

Aggregatfunktionen und Gruppierung

Die Funktion QUERY unterstützt mehrere SQL-Aggregatfunktionen. Falls Sie mit ihnen nicht vertraut sind, nehmen Aggregatfunktionen eine Gruppe von Zeilen als Eingabe und geben einen einzelnen Wert zurück. (Gruppen basieren in der Regel auf gemeinsamen Werten in einer bestimmten Spalte; darauf werden wir gleich noch näher eingehen. Wenn Sie keine Gruppierungsspalte angeben, ist der gesamte Datensatz die Gruppe.)

Die in Google Sheets QUERY unterstützten Aggregatfunktionen sind:

  • count(col) - Gibt die Anzahl der Nicht-Null-Werte aus der Spalte col zurück.
  • max(col) - Gibt den größten Wert aus col zurück. Beim Vergleich von Daten werden frühere Daten als "kleiner" behandelt. Zeichenketten werden alphabetisch verglichen und Groß- und Kleinschreibung wird beachtet.
  • min(col) -Gibt den kleinsten Wert aus col zurück.
  • sum(col) - Gibt die Gesamtsumme der numerischen Werte in col zurück.
  • avg(col) - Gibt den Durchschnitt der numerischen Werte in col zurück.

Hier sind einige Beispiele für Aggregatfunktionen, die ohne Gruppierung verwendet werden:

Google Sheets

SQL

Erläuterung

=QUERY(data_range, “select avg(D)”)

SELECT AVG(Salary)
FROM data_range;

Wenn Sie die Funktion avg() allein verwenden, wird der gesamte Datenbereich als Eingabe verwendet.

Gibt das Durchschnittsgehalt aller Mitarbeiter des Unternehmens zurück.

=QUERY(data_range, “select count(B)”)

SELECT COUNT(First_Name)
FROM data_range;

Gleiches Prinzip; ohne Gruppen zählt count() die Anzahl der Zeilen in der Spalte B für den gesamten Datensatz.

Gibt die Gesamtzahl der Mitarbeiter zurück, indem ihre Vornamen gezählt werden. Beachten Sie, dass Nullwerte weggelassen werden; um die richtige Zeilenanzahl zu erhalten, müssen wir sicherstellen, dass wir eine Spalte zählen, die nicht Null ist.

Um die Zeilen nach einem Spaltenwert in QUERY zu gruppieren, verwenden wir das Schlüsselwort group by (genau wie in SQL). Hier ist ein Vergleich zwischen den beiden Syntaxen:

Google Sheets:

=QUERY(data_range, “select <data> group by <columns>”)

SQL:

SELECT <data> FROM data_range GROUP BY <columns>;

Das Schlüsselwort group by gruppiert die Zeilen auf der Grundlage gemeinsamer Werte in der/den angegebenen Spalte(n) und erstellt eine einzelne Zeile für jeden eindeutigen Wert. Bei der Verwendung von group by müssen alle Endspalten entweder eine Aggregatfunktion sein oder in der group by-Klausel verwendet werden.

Das Ergebnis wird automatisch nach den Gruppierungsspalten sortiert, aber dies kann durch die Verwendung von order by außer Kraft gesetzt werden.

Hier sind einige Beispiele für die Verwendung von Gruppieren nach mit Aggregatfunktionen:

Google Sheets

SQL

Erläuterung

=QUERY(data_range, “select A, avg(D) group by A”)

SELECT
  Department,
  AVG(Salary)
FROM data_range
GROUP BY Department
ORDER BY Department;

Gibt das Durchschnittsgehalt der Mitarbeiter jeder Abteilung zurück.

Beachten Sie, dass das SQL-Äquivalent die ORDER BY-Klausel enthält, QUERY jedoch nicht. Wenn Sie group by mit QUERY verwenden, wird das Ergebnis automatisch sortiert.

=QUERY(data_range, “select E, count(B) group by E” order by count(B) desc)

SELECT
  Position,
  COUNT(First_Name)
FROM data_range
GROUP BY Position
ORDER BY COUNT(First_Name) DESC;

Returns the number of employees working in each position. Notice that in QUERY we override the default sort order to show the positions with the most employees first.

=QUERY(A1:E14, "select A, E, avg(D) group by A, E")

SELECT
  Department,
  Position,
  AVG(Salary)
FROM data_range
GROUP BY
  Department,
  Position
ORDER BY
  Department,
  Position;

Dies ist ein Beispiel für die Gruppierung nach mehreren Spalten.

Gibt das Durchschnittsgehalt für jede Position in jeder Abteilung zurück. Die QUERY-Funktion verwendet beim Sortieren der Daten dieselbe Spaltenreihenfolge wie die beim Gruppieren angegebene Reihenfolge.

Kombinieren von Daten aus mehreren Tabellenblättern

In den meisten Fällen möchten Sie wahrscheinlich ein separates Blatt mit allen Quelldaten haben. In diesem Abschnitt wird beschrieben, wie Sie die Funktion QUERY auf einem anderen Blatt als den Quelldaten verwenden können. Außerdem wird beschrieben, wie Sie verschiedene Datenquellen in einem QUERY kombinieren können.

Daten aus einem anderen Blatt abrufen

Google Sheets ermöglicht es Ihnen, bei der Auswahl einer Datenquelle auf ein anderes Blatt zu verweisen. Sie können dies tun, indem Sie den Namen des Blattes und ein Ausrufezeichen (!) an den Bereich Ihres Datensatzes anhängen. Nehmen wir zum Beispiel an, dass wir derzeit das Blatt "Analyse" verwenden und unsere Quelldaten sich im Blatt "Daten" im selben Arbeitsblatt befinden. (Hinweis: Sie können nur dann auf Daten aus anderen Tabellenblättern verweisen, wenn Sie diese in Ihr aktuelles Tabellenblatt importieren). Wir können den Bereich wie folgt festlegen:

=QUERY(data!A1:E14, “select *”)

Wichtig: Wenn Ihr Blatt Leerzeichen oder Sonderzeichen im Namen hat, sollten Sie den Namen des Blattes mit einfachen Anführungszeichen (‘’) umgeben, so wie hier:

=QUERY(‘Sheet with a complex name’!A1:E14, “select *”)

Jetzt wissen Sie, wie Sie Ihre Blätter besser formatieren können, indem Sie die Quelldaten von den Endberichten trennen.

Kombinieren mehrerer Datenquellen

Sie können auch Daten aus mehreren Datenbereichen in einer QUERY Funktion kombinieren. Es gibt zwei Möglichkeiten, wie die Daten kombiniert werden können:

  • Vertikal: Die Daten aus Bereich 1 werden über die Daten aus Bereich 2 gelegt, wodurch sich die endgültige Anzahl der Zeilen erhöht.
  • Horizontal: Die Daten aus Bereich 1 werden Seite an Seite mit den Daten aus Bereich 2 angeordnet, wodurch sich die endgültige Anzahl der Spalten erhöht.

Die erste Option funktioniert wie eine UNION in SQL. Die Daten in beiden Bereichen sollten ähnlich sein; wenn Sie auf eine Spalte verweisen, werden Daten aus beiden Bereichen angezeigt.

Um diese Methode zum Kombinieren von Blättern zu verwenden, ersetzen Sie den Datenbereich in der Abfrage durch die Liste der Bereiche, die durch Semikolons getrennt und in geschweifte Klammern eingeschlossen sind {}, wie folgt:

=QUERY({sheet1!A1:B1;sheet2!A1:B1}, “select *”)

Die zweite Option funktioniert wie eine JOIN in SQL. Jede Zeile aus Bereich 1 wird an eine Zeile aus Bereich 2 angehängt, wobei die Verknüpfungsbedingung die relative Zeilennummer ist. Mit anderen Worten, die erste Zeile aus Bereich 1 wird an die erste Zeile von Bereich 2 angehängt.

Diese Methode hat eine ähnliche Syntax wie die vorherige, verwendet aber Kommas statt Semikolons zur Trennung der Datenbereiche:

=QUERY({sheet1!A1:B1,sheet2!A1:B1}, “select *”)

Mehr darüber, wie UNION und JOIN in SQL funktionieren, erfahren Sie in unserem umfangreichen KursSQL für Anfänger . Er enthält mehr als 100 Übungen, mit denen Sie die wichtigste SQL-Syntax lernen und üben können.

SQL-Abfragen für Google Sheets

Jede Übung in diesem interaktiven SQL-Kurs ist so konzipiert, dass Sie Ihr Verständnis festigen können. Wenn Sie die Übungen absolvieren, gewinnen Sie das Selbstvertrauen, diese Befehle in der realen Welt anzuwenden.

Egal, ob Sie gerade erst anfangen oder eine Auffrischung benötigen, unser schrittweiser Ansatz gewährleistet, dass Sie in Ihrem eigenen Tempo lernen. Am Ende des Kurses verfügen Sie über eine solide Grundlage in SQL, die Ihnen neue Möglichkeiten für Datenanalysen, Berichte und vieles mehr eröffnet.

Die Verwendung von SQL-Abfragen macht Google Sheets noch leistungsfähiger

Die Funktion QUERY von Google Sheets ist eine großartige Möglichkeit, die Leistungsfähigkeit von SQL mit der Benutzerfreundlichkeit von Google Sheets zu kombinieren - ohne viel zusätzliche Syntax lernen zu müssen. Mit dieser Funktion können Sie einfach gemeinsam nutzbare Berichte erstellen, die Ihre Kollegen verwenden können, ohne Google Sheets verlassen oder erweiterte SQL-Strukturen verstehen zu müssen.

In diesem Artikel haben wir uns die Syntax für die Funktion QUERY und ihre Ähnlichkeiten und Unterschiede zu regulärem SQL angesehen. Wie Sie sehen können, lassen sich Ihre vorhandenen SQL-Kenntnisse leicht auf das Schreiben von Abfragen in Google Sheets übertragen.

Möchten Sie weitere SQL-Integrationen mit den Google-Tools erkunden? Lesen Sie, wie Sie SQL mit Google Analytics verwenden können.