Beginnen Sie mit der Abfrage von Daten mit dieser einfachen Abfragesprache

Das Arbeiten mit Daten wird am modernen Arbeitsplatz immer wichtiger.

Daten sind nicht länger die Domäne von Analysten und Softwareentwicklern. Mit der heutigen Technologie kann jeder mit Daten arbeiten, um Trends zu analysieren und seine Entscheidungen zu treffen.

Ein grundlegendes Konzept bei der Arbeit mit Daten ist das "Abfragen" eines Datensatzes. Dies dient dazu, buchstäblich Fragen zu einem Datensatz zu stellen. Eine Abfragesprache ist eine Softwaresprache, die eine Syntax zum Stellen solcher Fragen bereitstellt.

Wenn Sie keine Erfahrung mit dem Schreiben von Abfragen haben, können diese ein wenig einschüchternd wirken. Mit ein wenig Übung können Sie jedoch die Grundlagen beherrschen.

So können Sie in Google Sheets beginnen.

Google Visualization API-Abfragesprache

Möglicherweise verwenden Sie Google Sheets bereits für einen Großteil Ihrer täglichen Arbeit. Vielleicht sind Sie damit vertraut, Diagramme und Grafiken zu erstellen.

Die Google Visualization API-Abfragesprache ist die Magie, die hinter den Kulissen wirkt, um dies zu ermöglichen.

Aber wussten Sie, dass Sie über die QUERY()Funktion auf diese Sprache zugreifen können? Es kann ein leistungsstarkes Werkzeug für die Arbeit mit großen Datenblättern sein.

Es gibt viele Ähnlichkeiten zwischen der Abfragesprache und SQL.

In beiden Fällen definieren Sie einen Datensatz aus Spalten und Zeilen und wählen verschiedene Spalten und Zeilen aus, indem Sie verschiedene Kriterien und Bedingungen angeben.

In diesem Artikel stammen die Beispieldaten aus einer großen CSV-Datei mit internationalen Fußballergebnissen zwischen 1872 und 2019. Sie können die Daten von Kaggle herunterladen.

Laden Sie in einem neuen Google Sheet die CSV-Datei hoch. Sie können alle Daten mit Strg + A (oder Cmd + A auf dem Mac) auswählen.

Wählen Sie im Menüband "Daten"> "Benannte Bereiche" ... und nennen Sie den ausgewählten Bereich "Daten". Dies erleichtert die Arbeit.

Jetzt können Sie mit der Abfrage der Daten beginnen. Erstellen Sie eine neue Registerkarte in der Tabelle und erstellen Sie in Zelle A1 eine neue QUERY()Formel.

Holen Sie sich alle Spiele in England

Diese erste Abfrage findet alle Zeilen im Datensatz, in denen England entweder die Heimmannschaft oder die Auswärtsmannschaft ist.

Die QUERY()Formel akzeptiert mindestens zwei Argumente. Der erste ist der benannte Bereich, bei dem es sich um den abgefragten Datensatz handelt. Die zweite ist eine Zeichenfolge, die die eigentliche Abfrage enthält.

=QUERY(data, "SELECT * WHERE B = 'England' OR C = 'England'")

Lassen Sie uns das aufschlüsseln.

SELECT *fordert Sie auf, alle Spalten im Datensatz zurückzugeben. Wenn Sie nur die Spalten A, B und C möchten, würden Sie schreiben SELECT A, B, C.

Als Nächstes fügen Sie einen Filter hinzu, um nur Zeilen zu finden, in denen Spalte B oder Spalte C das Team enthalten 'England'. Stellen Sie sicher, dass für Zeichenfolgen in der Abfrage einfache Anführungszeichen verwendet werden. Doppelte Anführungszeichen werden verwendet, um die Abfrage selbst zu öffnen und zu schließen.

Diese Formel gibt alle Zeilen zurück, in denen England gespielt hat. Wenn Sie nach einem anderen Team suchen möchten, ändern Sie einfach die Bedingung im Filter.

Zähle alle Freundschaftsspiele

Als nächstes zählen wir, wie viele Freundschaftsspiele im Datensatz enthalten sind.

=QUERY(data, "SELECT COUNT(A) WHERE F = 'Friendly'")

Dies nutzt die COUNT()Funktion der Abfragesprache . Dies ist ein Beispiel für eine Aggregatfunktion. Aggregatfunktionen fassen viele Zeilen zu einer zusammen.

In diesem Datensatz gibt es beispielsweise 16.716 Zeilen, in denen Spalte F gleich ist 'Friendly'. Anstatt alle diese Zeilen zurückzugeben, gibt die Abfrage eine einzelne Zeile zurück, die stattdessen gezählt wird.

Andere Beispiele für Aggregatfunktionen enthalten MAX(), MIN()und AVG(). Anstatt alle Zeilen zurückzugeben, die der Abfrage entsprechen, werden stattdessen deren Maximal-, Minimal- und Durchschnittswerte gefunden.

Gruppe nach Turnier

Aggregatfunktionen können mehr, wenn Sie eine GROUP BYAnweisung daneben verwenden. Diese Abfrage ermittelt, wie viele Spiele von jedem Turniertyp gespielt wurden.

=QUERY(data, "SELECT F, COUNT(A) GROUP BY F")

Diese Abfrage gruppiert den Datensatz nach jedem der Werte in Spalte F. Anschließend wird gezählt, wie viele Zeilen sich in jeder Gruppe befinden.

Sie können GROUP BYfür mehr als eine Spalte verwenden. Verwenden Sie beispielsweise die folgende Abfrage, um herauszufinden, wie viele Spiele in jedem Land pro Turnier gespielt wurden:

=QUERY(data, "SELECT H, F, COUNT(A) GROUP BY H, F")

Versuchen wir eine erweiterte Filterung.

Holen Sie sich alle Spiele zwischen England und Deutschland

Sie können eine komplexere Filterlogik mit den Schlüsselwörtern ANDund angeben OR. Zur besseren Lesbarkeit kann es hilfreich sein, Klammern um jeden Teil des Filters zu verwenden.

So finden Sie beispielsweise alle Spiele zwischen England und Deutschland:

=QUERY(data, "SELECT * WHERE (B = 'England' AND C = 'Germany') OR (C = 'England' AND B ='Germany')")

Dieser Filter hat zwei Kriterien - eines, bei dem England die Heimmannschaft ist und Deutschland auswärts ist, und das andere umgekehrt.

Die Verwendung der Datenvalidierung erleichtert die Auswahl von zwei beliebigen Teams im Datensatz.

Anschließend können Sie eine Abfrage schreiben, die die Werte verschiedener Zellen in ihrem Filter verwendet. Denken Sie daran, einfache Anführungszeichen zum Identifizieren von Zeichenfolgen in der Abfrage und doppelte Anführungszeichen zum Öffnen und Schließen verschiedener Teile der Abfrage zu verwenden.

=QUERY(data, "SELECT * WHERE (B = '"&B1&"' AND C = '"&B2&"') OR (C = '"&B1&"' AND B ='"&B2&"')")

Auf der Suche nach Trends

Aggregierte Funktionen und Filter sind in Kombination leistungsstarke Werkzeuge. Sobald Sie mit ihrer Funktionsweise vertraut sind, können Sie nach interessanten Trends in Ihrem Datensatz suchen.

In der folgenden Abfrage werden beispielsweise die durchschnittlichen Tore pro Spiel pro Jahr seit 1900 ermittelt.

=QUERY(data, "SELECT YEAR(A), AVG(D) + AVG(E) WHERE YEAR(A) >= 1900 GROUP BY YEAR(A)")

Wenn Sie das Abfrageergebnis als Liniendiagramm darstellen, können Sie sofort Trends im Laufe der Zeit erkennen.

Ergebnisse bestellen

Manchmal sind Sie nicht daran interessiert, alle übereinstimmenden Zeilen in einem Datensatz zu finden. Oft möchten Sie sie nach bestimmten Kriterien sortieren. Vielleicht möchten Sie nur die zehn besten Datensätze finden.

Diese Abfrage findet die zehn besten Übereinstimmungen mit der höchsten Punktzahl im Datensatz.

=QUERY(data, "SELECT * ORDER BY (D+E) DESC LIMIT 10")

Beachten Sie die ORDER BYAussage. Dadurch werden die Zeilen nach den angegebenen Spalten sortiert. Hier sortiert die Abfrage die Ausgabe nach der Anzahl der im Spiel erzielten Tore.

Das DESCSchlüsselwort gibt an, dass in absteigender Reihenfolge ASCsortiert werden soll (das Schlüsselwort hätte sie in aufsteigender Reihenfolge sortiert).

Schließlich LIMITbeschränkt das Schlüsselwort die Ausgabe auf eine bestimmte Anzahl von Zeilen (in diesem Fall zehn).

Es sieht so aus, als hätte es in Ozeanien einige ziemlich einseitige Spiele gegeben!

In welchen Städten wurden die meisten WM-Spiele ausgetragen?

Und nun zu einem letzten Beispiel, um alles zusammenzubringen und Ihrer Fantasie freien Lauf zu lassen.

Diese Abfrage findet die zehn besten Städte, in denen die meisten Spiele der FIFA-Weltmeisterschaft ausgetragen wurden.

=QUERY(data, "SELECT G, COUNT(A) WHERE F = 'FIFA World Cup' GROUP BY G ORDER BY COUNT(A) DESC LIMIT 10")

Jetzt bist du dran

Hoffentlich haben Sie diesen Artikel nützlich gefunden. Wenn Sie mit der Logik in jedem Beispiel vertraut sind, können Sie echtes SQL ausprobieren.

Dadurch werden Konzepte wie JOINS, verschachtelte Abfragen und WINDOW-Funktionen eingeführt. Wenn Sie diese beherrschen, wird Ihre Fähigkeit, Daten zu manipulieren, durch das Dach gehen.

Es gibt eine Reihe von Stellen, an denen Sie mit dem Erlernen von SQL beginnen können. Probieren Sie die interaktiven Beispiele bei w3schools aus!