23rd Jun 2022 10 Leseminuten SQL in Google Sheets? Ja, wir können! Adrian Więch SQL lernen Inhaltsverzeichnis Abtasten von Google Sheets-Daten Die Abfragefunktion verstehen Erste Abfrage in Google Sheets Arbeiten mit Spalten und Bedingungen Hinzufügen weiterer Bedingungen und Anordnen von Zeilen Zählen gruppierter Zeilen Suche nach Durchschnittswerten SQL(ish)-Abfragen in Google Sheets? Unbedingt! Wussten Sie, dass Sie in Google Tabellenkalkulationen SQL-ähnliche Abfragen schreiben können? Diese Funktion ist unglaublich leistungsstark und vielseitig und kann die meisten Funktionen der Pivot-Tabellen von Excel ersetzen. Lesen Sie unseren Artikel, um herauszufinden, wie Sie die QUERY-Funktion einfach nutzen können, um effizient mit Ihren Google Sheets-Daten zu arbeiten. Relationale Datenbanken haben viele Funktionen mit Tabellenkalkulationen gemeinsam. Wenn wir erklären, was Datenbanken sind, sagen wir oft, dass sie ein bisschen wie Tabellenkalkulationen sind, nur dass sie uns mehr Kontrolle über größere Datenmengen geben. Um mit Datenbanken zu kommunizieren, verwenden wir in der Regel SQL, eine effektive Methode zum Abrufen von Daten aus einer Datenbank. (Wenn Sie noch nie etwas von SQL gehört haben, lesen Sie zunächst unseren kurzen Artikel Der vollständige Leitfaden für Anfänger zu den SQL-Grundlagen.) SQL ist eine universelle Abfragesprache. Es gibt sie seit den 1970er Jahren und sie ist immer noch sehr beliebt. SQL-Kenntnisse erhöhen Ihre Chancen auf eine stabile Karriere in der IT-Branche, denn diese Kenntnisse sind bei vielen Arbeitgebern gefragt. Wenn Sie mehr über die Vorteile von SQL erfahren möchten, lesen Sie die 5 großen Vorteile von SQL-Kenntnissen. Kommen wir zurück zu den Tabellenkalkulationen. Tabellenkalkulationen sind wichtig, weil die Daten nicht immer in einer Datenbank gespeichert werden. Viele Unternehmen verwenden CSV-Dateien oder Tabellenkalkulationen, um ihre Daten zu verwalten. Diese können in Anwendungen wie Google Sheets oder Microsoft Excel geöffnet werden, aber diese Dateien funktionieren nicht mit Datenbanken als solchen. Bedeutet das, dass Sie SQL nicht verwenden können, wenn Sie mit Daten in Tabellenkalkulationen arbeiten? Ganz und gar nicht! Google Sheets bietet eine QUERY-Option, mit der Sie SQL-ähnliche Anweisungen schreiben und Daten auf eine SQL-ähnliche Weise abrufen können. Auf diese Weise können Sie die Leistungsfähigkeit von SQL nutzen, auch wenn Sie keine Datenbank haben, mit der Sie arbeiten können! Natürlich ist Google Sheets kostenlos erhältlich. Das Programm kann eine Vielzahl von Dateiformaten öffnen, darunter CSV- und Excel-Dateien. Da SQL eine gut entwickelte, standardisierte Sprache für Datenabfragen ist, kann es für Ihre Analysen hilfreich sein, bei der Arbeit mit Google Sheets an SQL zu denken. Weitere Informationen hierzu finden Sie in dem Beitrag Wie man anfängt, in SQL zu denken von Jeffrey Edison, technischer Berater bei NoSide. In diesem Artikel zeigen wir Ihnen ein paar grundlegende Beispiele für die Arbeit mit SQL in Google Sheets. Einige SQL-Kenntnisse werden empfohlen, sind aber nicht erforderlich, um die vorgestellten Konzepte zu verstehen. Sie sollten in der Lage sein, den Beispielen zu folgen, auch wenn Sie noch nie eine SQL-Anweisung gesehen haben. Wenn Sie jedoch SQL lernen möchten, werfen Sie einen Blick auf LearnSQL.de's SQL-Grundlagen Kurs, der keine Vorkenntnisse voraussetzt und Sie zu einem fortgeschrittenen SQL-Benutzer macht. Abtasten von Google Sheets-Daten In diesem Artikel werden wir mit einer einfachen Google Sheets-Tabelle arbeiten, die einige grundlegende Informationen über ausgewählte Hotels in Indonesien enthält. Wir haben imaginäre Hotels verwendet, versuchen Sie also nicht, sie zu finden. Sie können die Tabelle und alle Abfragen, die wir in diesem Artikel vorstellen, in unserem Google Sheet "Hotelabfrage" ansehen. Für jede in diesem Artikel behandelte Abfrage gibt es ein eigenes Blatt. Die Tabelle Hotels Tabelle enthält die folgenden Spalten: Id - Der eindeutige Bezeichner für dieses Hotel. Name - Der Name des Hotels. Sterne - Die Anzahl der an das Hotel vergebenen Sterne: 3, 4 oder 5. Bewertung - Die durchschnittliche Bewertung des Hotels durch seine Gäste, auf einer Skala von 0 bis 10. TwinRoomPrice - Der Grundpreis für ein Zweibettzimmer für eine Nacht. Stadt - Die Stadt, in der sich das Hotel befindet: Bandung, Denpasar oder Surabaya. Auch wenn die Hotels imaginär sind, sind die Städte real. Googeln Sie Bandung, Denpasar und Surabaya - das sind wirklich gute Reiseziele für Indonesien! Nun gut. Jetzt, da wir die Daten kennen, lernen wir, wie man SQL in Sheets verwendet. Die Abfragefunktion verstehen Um SQL-ähnliche Anweisungen in Google Sheets zu schreiben, benötigen wir nur eine einzige Funktion namens QUERY. Das Format der Funktion ist nicht besonders schwierig: =QUERY(data, query, [headers]) Wie Sie sehen können, benötigt die QUERY-Funktion drei Parameter, von denen nur zwei erforderlich sind. Schauen wir uns diese Parameter an: data - Der Bereich der Zellen, der die Daten enthält (in diesem Fall ist der Bereich die gesamte Hotels Tabelle). query - Die SQL-ähnliche Abfrage, die ausgeführt werden soll. headers - Die Anzahl der Zeilen, die Kopfinformationen enthalten. Diese befinden sich normalerweise am Anfang der Daten, d.h. die Spaltennamen. Dieses Argument ist optional. Wenn Sie es nicht angeben, wird Google Sheets versuchen, es herauszufinden. Die Anwendung kann dies recht gut, so dass der Parameter normalerweise nicht benötigt wird. Wir werden ihn in diesem Artikel weglassen. Machen Sie sich keine Sorgen, wenn Ihnen diese Parameter etwas vage vorkommen - in den nächsten Abschnitten finden Sie ein paar leicht verständliche Beispiele. Erste Abfrage in Google Sheets Lassen Sie uns mit dem einfachsten Beispiel beginnen. Wir wählen einfach alle Daten aus unserer Hotels Tabelle. Wir wählen zunächst eine freie Zelle rechts neben der Hotels Tabelle in Google Sheets und beginnen mit dem Schreiben unserer Abfrage auf folgende Weise. (Drücken Sie noch nicht die Eingabetaste.) =QUERY(A1:F23, Der erste Parameter, data, ist der Zellbereich. In diesem Fall haben wir A1:F23 angegeben, was dem Bereich der Hotels Tabelle entspricht, wie in der Abbildung unten gezeigt. Nach dem Komma sollten wir nun unsere SQL-ähnliche Abfrage in Anführungszeichen eingeben. Die offizielle Bezeichnung für die in Google Sheets verwendete Abfragesprache ist Google Visualization API Query Language. Um alle Daten auszuwählen, benötigen wir den folgenden Code: =QUERY(A1:F23,"SELECT *") Beachten Sie, dass Sie möglicherweise das Komma, das die Parameter trennt, durch ein Semikolon oder ein anderes Zeichen ersetzen müssen, je nach Ihren Google Sheets-Einstellungen. In Google Sheets bedeutet SELECT * "alles auswählen". Beachten Sie, wie ähnlich diese Anweisung ihrem SQL-Äquivalent SELECT * FROM Hotels ist. In Google Sheets lassen wir die FROM-Klausel weg, da der Datenbereich im ersten Argument angegeben wird. Wenn Sie jetzt die Eingabetaste drücken, verwandelt Google Sheets die Abfrage in eine Ergebnismenge, wie in der folgenden Abbildung gezeigt: Die Tabelle, die Sie sehen können, ist im Wesentlichen identisch mit der ursprünglichen Tabelle. Dies ist das erwartete Verhalten. Unsere Abfrage lautete SELECT *, was soviel bedeutet wie "zeige alles aus den Originaldaten". Großartig! Wir haben gerade unsere erste Abfrage in Google Sheets geschrieben! Arbeiten mit Spalten und Bedingungen Schauen wir uns nun ein paar fortgeschrittenere Beispiele an. Angenommen, wir möchten nur drei Spalten anzeigen: Name, Bewertung und Preis für zwei Zimmer. Außerdem möchten wir nur Drei-Sterne-Hotels anzeigen. In diesem Fall müssen wir auf einzelne Spalten verweisen. Die Abfrage sieht dann so aus: =QUERY(A1:F23, "SELECT B, D, E WHERE C=3") Wie Sie sehen, verwenden wir statt der Spaltennamen aus unserer Tabelle (wie Name, Sterne oder Bewertung) die von Google Sheets bereitgestellten Spaltenbuchstaben. Die Spalte Name befindet sich in Spalte B in der Tabelle, daher haben wir SELECT B verwendet, um sie in der Ergebnistabelle anzuzeigen. Aus demselben Grund haben wir D verwendet, um die Spalte Bewertung auszuwählen, und E, um die Spalte Preis für zwei Zimmer auszuwählen. Die Spalten sind ebenfalls durch Kommas getrennt, aber nach der letzten auszuwählenden Spalte steht kein Komma. Nach der Auswahl der Spalten fügen wir WHERE C=3 hinzu. C bezieht sich auf die Spalte Sterne, so dass die Anweisung im Grunde bedeutet, dassnur Drei-Sterne-Hotels ausgewählt werden sollen (d. h., wenn die Spalte C gleich 3 ist). Der Screenshot unten zeigt, wie sich die Abfrage auf die einzelnen Spalten bezieht: Wenn wir die Eingabetaste drücken, erstellt Google Sheets eine übersichtliche Tabelle, die drei Spalten mit allen Informationen zu Drei-Sterne-Hotels enthält: Name, Bewertung und Preis für zwei Zimmer. Beachten Sie, dass die entsprechende SQL-Abfrage sehr ähnlich aussehen würde: SELECT Name, Rating, TwinRoomPrice FROM Hotels WHERE Stars=3; Hinzufügen weiterer Bedingungen und Anordnen von Zeilen In unserem nächsten Beispiel möchten wir alle Hotels in Bandung finden, die eine Bewertung über 7.0 haben. Außerdem möchten wir die gefundenen Hotels in der Reihenfolge vom niedrigsten zum teuersten Preis anzeigen. Um diese Anforderungen zu erfüllen, müssen wir zwei neue Teile hinzufügen. Wir müssen mehrere Bedingungen mit dem Schlüsselwort AND verbinden, und wir müssen die Zeilen mit einer neuen Klausel namens ORDER BY sortieren. Hier ist die Abfrage: =QUERY(A1:F23, "SELECT * WHERE D > 7.0 AND F='Bandung' ORDER BY E") Sehen Sie sich die WHERE Klausel der obigen Abfrage an. Spalte D enthält die Hotelbewertungen. In diesem Fall soll die Bewertung größer als 7.0 sein. Außerdem wollen wir eine weitere Bedingung einführen: Die Hotels müssen sich in Bandung befinden. Um mehr als eine Bedingung einzugeben, verwenden wir das Schlüsselwort AND. Spalte F enthält die Städte der Hotels, also haben wir F='Bandung' geschrieben, um Hotels aus Bandung zu erhalten. Beachten Sie, dass Textwerte von einfachen Anführungszeichen umgeben sein müssen (im Gegensatz zu Zahlen). Wenn wir die Anführungszeichen vergessen, erhalten wir eine Fehlermeldung. Schließlich fügen wir den folgenden Code ein: ORDER BY E. Die ORDER BY Klausel wird verwendet, um die resultierenden Zeilen zu sortieren. In diesem Fall wollen wir die Zeilen nach TwinRoomPrice (Zwillingszimmerpreis) sortieren, der sich in Spalte E befindet. Standardmäßig werden die Zeilen in aufsteigender Reihenfolge sortiert. Wenn Sie die Eingabetaste drücken, sehen Sie die resultierende Tabelle. Es werden nur Hotels aus Bandung angezeigt, die eine Bewertung von mehr als 7,0 haben. Beachten Sie, dass alle Zeilen nach dem Preis sortiert sind. Zählen gruppierter Zeilen Zum Schluss kommen wir zu zwei Beispielen, mit denen Sie ähnliche Ergebnisse wie mit Excel-Pivot-Tabellen erzielen können. Zunächst wollen wir die Anzahl der Hotels in jeder Stadt zählen. Dazu verwenden wir die folgende Abfrage: =QUERY(A1:F23,"SELECT F, COUNT(A) GROUP BY F ") Die Abfrage enthält zwei neue Elemente: COUNT(A) und GROUP BY F. Beginnen wir mit letzterem. GROUP BY F bedeutet, dass wir alle Zeilen auf der Grundlage der Werte in Spalte F ( Stadt) in Gruppen unterteilen wollen. Wir führen die Gruppierung (auch als "Aggregation" bekannt) durch, um jede Stadt (SELECT F) zusammen mit der Anzahl der Hotels in dieser Stadt (COUNT(A)) anzeigen zu können. COUNT(A) zählt die Anzahl der Zeilen in der angegebenen Gruppe. Wenn keine GROUP BY-Klausel angegeben wird, werden alle Zeilen gezählt. Wir setzen Spalte A(Id) in die Klammern, damit alle eindeutigen Hotels gezählt werden. Wir haben Id aus Konvention gewählt; Sie könnten auch eine andere Spalte verwenden, z. B. B (den Hotelnamen), aber ID-Spalten werden normalerweise bevorzugt, weil sie immer eindeutige Werte enthalten. Wir besprechen Aggregatfunktionen (wie COUNT()) und die GROUP BY-Klausel in unserem KursSQL-Grundlagen . Schauen Sie sich diesen Kurs an, wenn Sie verstehen wollen, wie diese SQL-Funktionen funktionieren. Wenn wir die Eingabetaste drücken, sehen wir die Tabelle mit der Anzahl der Hotels in jeder Stadt: Die entsprechende SQL-Abfrage würde wie folgt aussehen: SELECT City, COUNT(Id) FROM Hotels GROUP BY City; Suche nach Durchschnittswerten Im letzten Beispiel berechnen wir die durchschnittliche Bewertung und den durchschnittlichen Preis für Hotels in jeder Kategorie (Drei-, Vier- und Fünf-Sterne-Hotels). Dazu benötigen wir die folgende Abfrage: =QUERY(A1:F23, "SELECT C, AVG(D), AVG(E) GROUP BY C") Wir haben GROUP BY C verwendet, um alle Hotels nach der Spalte Sterne zu gruppieren. Außerdem haben wir AVG(D) und AVG(E) eingeführt, die zur Berechnung der Durchschnittswerte in den Spalten D(Bewertung) bzw. E (Preis für zwei Zimmer) verwendet werden. Wenn wir die Eingabetaste drücken, sollten wir diese Ergebnistabelle sehen: Die entsprechende SQL-Anweisung würde wie folgt aussehen: SELECT Stars, AVG(Rating), AVG(TwinRoomPrice) FROM Hotels GROUP BY Stars; SQL(ish)-Abfragen in Google Sheets? Unbedingt! In diesem Artikel habe ich erklärt, wie man eine SQL-ähnliche Abfragesprache in Google Sheets verwendet. Sie sollten nun ein solides Verständnis für die QUERY-Funktion in Sheets haben. Sie können auch sehen, wie ähnlich die Abfragesprache von Google dem Standard-SQL ist. Wenn Ihnen dieser Kurs gefallen hat und Sie neugierig auf SQL sind, besuchen Sie den Kurs LearnSQL.de's SQL-Grundlagen. Es gibt eine kostenlose Testversion, um Ihnen den Einstieg zu erleichtern! Die Abfragesprache von Google hat sicherlich mehr zu bieten, als wir in diesem einführenden Artikel zeigen konnten. Wenn Sie daran interessiert sind, die anderen Funktionen zu nutzen, werfen Sie einen Blick in die offizielle Dokumentation der Google Visualization API Query Language. Tags: SQL lernen