27th Nov 2023 14 Leseminuten BigQuery-Fensterfunktionen erklärt Jill Thornhill Window Functions Google BigQuery Inhaltsverzeichnis Was ist BigQuery? Was sind SQL Fensterfunktionen? Warum werden sie Fensterfunktionen genannt? Syntax von BigQuery Fensterfunktionen Die OVER()-Klausel Die PARTITION BY-Klausel Die ORDER BY-Klausel Verwendung von ORDER BY mit der PARTITION BY-Klausel SQL Fensterfunktionen verfügbar in BigQuery RANK() DENSE_RANK() ROW_NUMBER() LAG() LEAD() Praktische Verwendungen von BigQuery Fensterfunktionen Nächste Schritte mit BigQuery Fensterfunktionen Wenn Sie mit den Trends in der Datenanalyse Schritt halten, ist Ihr Unternehmen - und Ihr Lebenslauf - auf dem neuesten Stand. In diesem Artikel werden wir uns die BigQuery-Fensterfunktionen ansehen und wie Sie sie nutzen können, um tiefere Einblicke in Ihre Daten zu gewinnen. BigQuery von Google wurde 2010 auf den Markt gebracht und erfreut sich zunehmender Beliebtheit bei Unternehmen, die große Mengen an Informationen schnell analysieren und ihre eigenen Daten mit öffentlich zugänglichen statistischen Daten vergleichen müssen. Seitdem Google die Datenabfragesprache von BigQuery an den SQL-Standard angepasst und erweiterte Funktionen wie SQL-Fensterfunktionen hinzugefügt hat, ist die Popularität des Programms gestiegen. In vielen Unternehmen sind BigQuery-Kenntnisse inzwischen ein Muss, und das bedeutet, dass SQL-Kenntnisse gefragter sind denn je. Dieser Artikel erklärt, warum SQL-Kenntnisse für die Arbeit mit BigQuery unerlässlich sind SQL ist nach wie vor die wichtigste Kompetenz für alle, die mit Daten arbeiten müssen. Wenn Sie noch kein SQL-Guru sind, könnten Sie sich für unseren SQL von A bis Z Lernpfad interessieren. Er umfasst 7 Kurse, die Sie vom absoluten Anfänger zum SQL-Experten machen. Der Kurs enthält Hunderte von Programmieraufgaben aus der Praxis und dauert etwa 84 Stunden. Da Sie über Ihren Browser auf die Beispieldatenbanken zugreifen können, müssen Sie keine Software installieren, um loszulegen. Was ist BigQuery? Google BigQuery ist ein Hochgeschwindigkeits-Datenlager in der Cloud. Es wurde speziell für die Speicherung von Analysedaten entwickelt und kann Petabytes an Daten in wenigen Minuten verarbeiten. Falls Sie sich mit Petabytes noch nicht auskennen: Ein Petabyte ist eine Billiarde Bytes (oder eine Million Gigabytes). Sie zahlen für das, was Sie in BigQuery verwenden, so dass die Kosten für die Speicherung und Analyse großer Datenmengen in der Regel viel niedriger sind als die Investition in viele Festplatten. Und da alle Arten von nützlichen statistischen Daten von Regierungen und Weltorganisationen öffentlich in BigQuery gespeichert sind, können Sie darauf zugreifen, um Erkenntnisse darüber zu gewinnen, wie die Leistung Ihres Unternehmens verbessert werden könnte. Was sind SQL Fensterfunktionen? Fensterfunktionen sind auch als analytische Funktionen oder OVER-Funktionen bekannt. Sie wurden 2003 in den SQL-Standard aufgenommen, und die meisten großen Datenbankanbieter haben sie ab 2010 implementiert. Sie sind also eine relativ neue Ergänzung zu SQL. Bevor Fensterfunktionen in SQL aufgenommen wurden, konnten Sie entweder einzelne Zeilen auflisten oder Aggregate wie Summen und Durchschnittswerte berechnen. Beides war in ein und derselben Abfrage nicht möglich, es sei denn, man schrieb komplexe - und wahrscheinlich langsame und ineffiziente - Unterabfragen. Das bedeutet, dass Sie entweder eine Liste wie diese haben können ... Student IDSubjectScore 1Math63 1Science50 2Math59 ... oder Sie könnten Aggregate wie dieses anzeigen: SubjectClass Average Math52 Science61 English55 Overall Average56 Wenn Sie in diesem Beispiel wissen wollen, wie die Punktzahl eines einzelnen Schülers im Vergleich zum Klassendurchschnitt ausfällt, müssen Sie sich die beiden Berichte nebeneinander ansehen. Es wäre viel schöner, wenn Sie den Klassendurchschnitt in derselben Zeile wie die Punktzahl eines Schülers sehen könnten, so wie hier: Student IDSubjectScoreClass Average 1Math6362 1Science5061 2Math5952 Wie ich bereits erwähnt habe, könnten Sie dies mit Unterabfragen erreichen. Aber Unterabfragen sind notorisch langsam in der Ausführung und können Ihre Abfrage sehr kompliziert machen. Mit den Fensterfunktionen können Sie genau das einfach und effizient tun: Aggregate neben Details in derselben Zeile einfügen. Warum werden sie Fensterfunktionen genannt? Sie werden Fensterfunktionen genannt, weil Sie, während Sie eine einzelne Zeile betrachten, auch "durch das Fenster" schauen und Informationen aus dem gesamten Datensatz oder aus Zeilen, die mit der aktuellen Zeile in Beziehung stehen, extrahieren können. Betrachten wir als Beispiel eine Tabelle mit den Noten der Schüler: Student IDTeacher IDSubjectGrade 11Math63 21Math80 32Math60 42Math45 51Math52 61Math70 72Math65 12Science70 22Science62 32Science90 42Science30 52Science53 15English59 35English70 55English45 65English62 112History55 312History67 412History58 Wie im vorigen Beispiel möchten wir den Klassendurchschnitt neben jedem Schüler anzeigen, so dass eine einzelne Zeile wie folgt aussieht: Student IDSubjectGradeClass Average 4Math4562 Dazu müssen wir beim Extrahieren dieser Zeile den Durchschnitt aller anderen Schüler berücksichtigen und das Ergebnis neben den anderen Daten anzeigen. In SQL verwenden Fensterfunktionen ein gleitendes Fenster von Zeilen, um zusätzliche Informationen entweder aus dem gesamten Datensatz oder aus einer Teilmenge in Bezug auf die aktuelle Zeile zu extrahieren. Im obigen Diagramm ist die aktuelle Zeile ein mathematisches Ergebnis, und das Fenster enthält alle mathematischen Noten. Wenn wir diese Zeile extrahieren ... Student IDSubjectGradeClass Average 1Science7062 ... müssen wir das Fenster "verschieben", damit wir alle naturwissenschaftlichen Ergebnisse sehen, um den Durchschnitt für Naturwissenschaften zu berechnen. Fensterfunktionen haben viele der gleichen Fähigkeiten wie die GROUP BY-Klausel, aber der Unterschied besteht darin, dass sie uns erlauben, Aggregate und Details nebeneinander anzuzeigen. Syntax von BigQuery Fensterfunktionen Die OVER()-Klausel Die OVER() Klausel zeigt an, dass Sie eine Fensterfunktion verwenden. Sie schreiben Ihre Abfrage wie gewohnt und fügen die gewünschten Aggregate neben den anderen Spaltennamen ein. Jedes Aggregat wird mit der Klausel OVER() gekennzeichnet. Wenn Sie diese Klausel allein verwenden, ist das "Fenster" der gesamte Datensatz. Auf gleitende Fenster gehe ich später in diesem Artikel noch näher ein. Wenn Sie zum Beispiel alle Matheergebnisse extrahieren und den Klassendurchschnitt sowie die höchste und niedrigste Note für jeden Schüler anzeigen möchten, würde Ihre Abfrage wie folgt aussehen: SELECT student_id, grade, AVG(grade) OVER() AS average, MIN(grade) OVER() AS lowest, MAX(grade) OVER() AS highest FROM exam_results WHERE subject = 'Math'; Ihre Ergebnisse würden dann wie folgt aussehen: student_idgradeaveragelowesthighest 163624580 280624580 360624580 445624580 552624580 670624580 765624580 Die PARTITION BY-Klausel Diese Klausel verwendet ein gleitendes Fenster. Anstelle eines Fensters, das den gesamten Datensatz enthält, wird nur eine Partition (oder ein Teil) des Satzes einbezogen. Im vorherigen Beispiel habe ich nur die mathematischen Ergebnisse einbezogen, indem ich alle anderen mit der Klausel WHERE ausgeschlossen habe. Wenn Sie einen Bericht wünschen, der die Ergebnisse für alle Fächer anzeigt, aber den Durchschnitt nur aus den Zeilen berechnet, in denen das Fach mit der aktuellen Zeile übereinstimmt, würden Sie die Klausel PARTITION BY verwenden: SELECT student_id, subject, grade, AVG(grade) OVER(PARTITION BY subject) AS average FROM exam_results; Schauen Sie sich diese farbcodierte Kopie der Tabelle mit den Noten der Schüler an, um zu sehen, wie die Unterteilungen funktionieren werden: Student IDTeacher IDSubjectGrade 11Math63 21Math80 32Math60 42Math45 51Math52 61Math70 72Math65 12Science70 22Science62 32Science90 42Science30 52Science53 15English59 35English70 55English45 65English62 112History55 312History67 412History58 Bei der Verarbeitung jeder Zeile ändern sich die im Fenster enthaltenen Zeilen auf der Grundlage des Wertes in der Spalte subject. Das bedeutet, dass der Durchschnitt nur für die Partition des Datensatzes berechnet wird, in der das Thema mit der aktuellen Zeile übereinstimmt. Sie können sich das wie folgt vorstellen: Die Ergebnisse würden wie folgt aussehen: Student IDSubjectGradeClass Average 1Math6362 2Math8062 3Math6062 4Math4562 5Math5262 6Math7062 7Math6562 1Science7061 2Science6261 3Science9061 4Science3061 5Science5361 1English5959 3English7059 5English4559 6English6259 1History5560 3History6760 4History5860 Die ORDER BY-Klausel Die ORDER BY -Klausel innerhalb der Funktion OVER() verwendet eine andere Art von gleitendem Fenster. Wenn Sie OVER(ORDER BY column_name) verwenden, schließt das Fenster nur die Zeilen ein, in denen der Wert der angegebenen Spalte kleiner oder gleich dem Wert dieser Spalte in der aktuellen Zeile ist. Die Klausel ORDER BY ist nützlich für die Berechnung von laufenden Summen und gleitenden Durchschnitten. Als Beispiel verwende ich eine Tabelle namens monthly_transactions die Bankkontotransaktionen enthält: account_idtran_datetransactionvalue 12023-09-01Opening Balance500.00 12023-09-03Deposit137.45 12023-09-12Withdrawal-200.00 12023-09-18Withdrawal-250.00 22023-09-01Opening Balance1200.00 22023-09-14Deposit900.00 22023-09-20Purchase-318.90 Die folgende Abfrage listet die Transaktionen für die Konto-ID 1 auf und zeigt einen laufenden Saldo an. SELECT account_id, tran_date, transaction, value, SUM(value) OVER(ORDER BY tran_date) AS balance FROM monthly_transactions WHERE account_id = 1; Die Einbeziehung der Klausel ORDER BY in die Klausel OVER steuert ein gleitendes Fenster. Wenn Sie möchten, können Sie auch die übliche ORDER BY Klausel am Ende der Abfrage verwenden, um die endgültige Reihenfolge der Zeilen im Bericht zu steuern. Sie müssen nicht unbedingt in der ursprünglichen Reihenfolge angezeigt werden. Standardmäßig bewirkt die Verwendung von ORDER BY innerhalb der OVER -Klausel, dass das Fenster so verschoben wird, dass nur Zeilen angezeigt werden, deren Datum kleiner oder gleich dem Datum der aktuellen Zeile ist. Es gibt noch weitere Schlüsselwörter, die diese Vorgabe ändern können, aber das würde den Rahmen dieses Artikels sprengen. Sie können sich das folgendermaßen vorstellen: Die Ergebnisse würden wie folgt aussehen: account_idtran_datetransactionvaluebalance 12023-09-01Opening Balance500.00500.00 12023-09-03Deposit137.45637.45 12023-09-12Withdrawal-200.00437.45 12023-09-18Withdrawal-250.00187.45 22023-09-01Opening Balance1200.001200.00 22023-09-14Deposit900.002100.00 22023-09-20Purchase-318.901781.10 Verwendung von ORDER BY mit der PARTITION BY-Klausel Wenn Sie alle Konten mit ihren laufenden Salden anzeigen möchten, können Sie PARTITION BY und ORDER BY zusammen verwenden: SELECT account_id, tran_date, transaction, value, SUM(value) OVER(PARTITION BY account_id ORDER BY tran_date) AS balance FROM monthly_transactions ORDER BY account_id, tran_date Die Klausel PARTITION BY bewirkt, dass das gleitende Fenster nur Zeilen enthält, in denen account_id mit der aktuellen Zeile übereinstimmt. Die Klausel ORDER BY bewirkt, dass nur Zeilen innerhalb dieser Partition angezeigt werden, deren Datum kleiner oder gleich dem Datum der aktuellen Zeile ist. Das Ergebnis wäre wie folgt: account_idtran_datetransactionvaluebalance 12023-09-01Opening Balance500.00500.00 12023-09-03Deposit137.45637.45 12023-09-12Withdrawal-200.00437.45 12023-09-18Withdrawal-250.00187.45 22023-09-01Opening Balance1200.001200.00 22023-09-14Deposit900.002100.00 22023-09-20Purchase-318.901781.10 Jedes Konto hat einen eigenen laufenden Saldo. SQL Fensterfunktionen verfügbar in BigQuery Sie haben gesehen, wie gängige SQL-Aggregatfunktionen wie SUM(), AVG(), MIN() und MAX() in Verbindung mit der OVER-Klausel verwendet werden können, um Aggregate aus einem Datenfenster zu extrahieren. Google BigQuery verfügt, wie viele andere SQL-Dialekte auch, über zusätzliche Funktionen, die tiefere Einblicke in die Daten geben können. Hier sind einige Beispiele. RANK() Diese Funktion ordnet den Datensatz vom höchsten zum niedrigsten Wert in einer bestimmten Spalte. Sie kann Fragen beantworten wie: Welchen Platz hat jeder Schüler in der Klasse aufgrund der Prüfungsergebnisse eingenommen? Welche Produkte waren am profitabelsten? Welche Kunden gaben das meiste Geld aus? Welches Lager erhielt die meisten Beschwerden? Anhand der Beispieltabelle, die wir uns vorhin angesehen haben, können wir mit dieser Abfrage die Studenten nach ihren Prüfungsergebnissen einordnen: SELECT student_id, subject, grade, RANK() OVER(PARTITION BY subject ORDER BY grade desc) AS place FROM exam_results ORDER BY subject, grade DESC; Das Ergebnis würde lauten: student_idsubjectgradeplace 3English701 6English622 1English593 5English454 3History671 4History582 1History553 2Math801 6Math702 7Math653 1Math634 3Math605 5Math526 4Math457 3Science901 1Science702 2Science623 5Science534 4Science305 Bei der Berechnung dieser Ergebnisse veranlasst die PARTITION BY subject-Klausel SQL, nur die Ergebnisse für das gleiche Fach wie die aktuelle Zeile zu betrachten. Die ORDER BY grade DESC Klausel sortiert sie in absteigender Reihenfolge der Note. Die Funktion RANK() ordnet die Schüler dann in dieser Reihenfolge an. Da Schüler 3 die beste Note in Englisch hat, ist sein Rang 1; Schüler 6, der nächstbeste, ist in diesem Fach auf Rang 2. Schüler 2 hat die beste Note in Mathe und wird auf Platz 1 eingestuft. DENSE_RANK() DENSE_RANK() wird für denselben Zweck verwendet wie RANK. Der Unterschied zwischen den beiden lässt sich am besten anhand dieser Abfrageergebnisse erklären, die Ergebnisse in einem Schießwettbewerb darstellen. Mit RANK würde die Abfrage lauten: SELECT competitor_no, score, RANK() OVER(ORDER BY score desc) AS rank FROM match_results ORDER BY score DESC; Die Ergebnisse sind: Competitor NoScoreRank 4851 5832 10832 9814 2765 6765 7727 3708 8689 16210 Die Mitbewerber 5 und 10 liegen gleichauf auf dem zweiten Platz und erhalten beide die Note 2. Der Mitbewerber 9 ist der nächstplatzierte und erhält die Note 4. Der dritte Platz wird nicht berücksichtigt. Mit DENSE_RANK lautet die Abfrage: SELECT competitor_no, score, DENSE RANK() OVER(ORDER BY score desc) AS rank FROM match_results ORDER BY score DESC; Die Ergebnisse sind: Competitor NoScoreRank 4851 5832 10832 9813 2764 6764 7725 3706 8687 1628 Die Mitbewerber 5 und 10 haben immer noch beide den Rang 2, aber der dritte Platz wird nicht ausgelassen: Mitbewerber 9 hat jetzt den Rang 3. Beide Funktionen haben die gleiche Syntax. Wenn wir die Abfrage nach den Noten der vorherigen Schüler mit der Funktion DENSE_RANK() umcodieren wollten, würde sie so aussehen: SELECT student_id, subject, grade, DENSE_RANK() OVER(PARTITION BY subject ORDER BY grade desc) AS class_place FROM exam_results ORDER BY subject, grade DESC Da es aber keine Gleichheitswerte gibt, wäre das Ergebnis dasselbe. ROW_NUMBER() Die Funktion ROW_NUMBER() funktioniert ähnlich wie die beiden vorherigen Funktionen, aber die Zeilen werden einfach der Reihe nach nummeriert. Wenn Zeilen denselben Wert haben, werden sie fortlaufend nummeriert, je nachdem, welche Zeile zuerst gefunden wurde. Hier sind die Ergebnisse der Abfrage des Schießwettbewerbs unter Verwendung von ROW_NUMBER() anstelle von RANK() oder DENSE_RANK(): Competitor NoScoreRank 4851 5832 10833 9814 2765 6766 7727 3708 8689 16210 LAG() Mit dieser Funktion können Sie Daten aus der vorherigen Zeile der Ergebnismenge mit den Daten der aktuellen Zeile vergleichen. Sie ist ideal für Jahresvergleiche und ermöglicht es Ihnen, Trends zu entdecken und Probleme mit der Unternehmensleistung zu erkennen. LAG() und die zugehörige Funktion LEAD() können nur in Verbindung mit der Klausel OVER(ORDER BY) verwendet werden. Nehmen Sie als Beispiel die folgende Tabelle, die Umsatzdaten für ein kleines Unternehmen enthält: yearsales_valuesales_quantityprofit 2019540009008000 202075000120011000 2021300004501000 202260000100007000 Die Beispielabfrage zum Vergleich der Jahreszahlen lautet: SELECT year, sales_value, sales_quantity, profit, LAG(sales_value) OVER(ORDER BY year) as ly_value, LAG(sales_quantity) OVER(ORDER BY year) as ly_qty, LAG(profit) OVER(ORDER BY year) as ly_profit, profit - LAG(profit) OVER(ORDER BY year) as inc_dec FROM annual_sales ORDER BY year; Die Ergebnisse dieser Abfrage sind: yearsales_valuesales_quantityprofitly_valuely_qtyly_profitinc_dec 2019540009008000NULLNULLNULLNULL 2020750001200110005400090080003000 202130000450100075000120011000-10000 2022600001000070003000045010006000 Schauen wir uns diese Zeile der Abfrage an und sehen wir, was sie tatsächlich bewirkt hat: LAG(sales_value) OVER(ORDER BY year) as ly_value In dieser Zeile des Ergebnisses ... yearsales_valuesales_quantityprofitly_valuely_qtyly_profitinc_dec 2020750001200110005400090080003000 ... ist unsere aktuelle Zeile für das Jahr 2020. Die Funktion LAG() in Verbindung mit ORDER BY year veranlasst SQL, die Zeile für das vorherige Jahr (2019) zu betrachten und den Umsatzwert daraus unter der Überschrift ly_value zu extrahieren. Sie werden feststellen, dass in der ersten Zeile die von der Funktion LAG() berechneten Spalten einen Nullwert enthalten, da es keinen vorherigen Datensatz gibt. LEAD() Die Funktion LEAD() ist die Umkehrung der Funktion LAG(): Sie bezieht die Daten aus der Zeile nach der aktuellen Zeile und nicht aus der Zeile davor. Um den Gewinn zwischen dem aktuellen Jahr, dem Vorjahr und dem Folgejahr unter Verwendung derselben Beispieltabelle zu vergleichen, würde die Abfrage lauten: SELECT year, profit, LAG(profit) OVER(ORDER BY year) as ly_profit, profit - LAG(profit) OVER(ORDER BY year) as ly_inc_dec, LEAD(profit) OVER(ORDER BY year) as ny_profit, LEAD(profit) OVER(ORDER BY year) - profit as ny_inc_dec FROM annual_sales ORDER BY year; Die Ergebnisse dieser Abfrage wären: yearprofitly_profitly_inc_decny_profitny_inc_dec 20198000NULLNULL110003000 202011000800030001000-10000 2021100011000-1000070006000 2022700010006000NULLNULL Die Spalten ny_profit und ny_inc_dec verwenden die Funktion LEAD(), die SQL veranlasst, die nächste Zeile in der Reihenfolge zu betrachten, um diese Felder zu extrahieren. Wenn die aktuelle Zeile für 2019 ist, werden diese beiden Felder aus der Zeile für 2020 genommen. Dies sollte Ihnen einen Eindruck von einigen der nützlichen SQL-Fensterfunktionen in BigQuery vermittelt haben. Eine vollständige Liste der Funktionen finden Sie in der BigQuery-SQL-Dokumentation. Weitere Beispiele für Fensterfunktionen finden Sie in dem Artikel SQL Window Function Examples. Eine Kurzanleitung für die Syntax der SQL-Fensterfunktionen finden Sie auch in unserem Fensterfunktionen Cheat Sheet. Praktische Verwendungen von BigQuery Fensterfunktionen In der realen Welt gibt es viele Möglichkeiten, wie BigQuery-Fensterfunktionen Ihnen Einblicke geben können, um die Leistung Ihres Unternehmens zu verbessern. Sie sind sehr leistungsfähig und ermöglichen es Ihnen, sehr schnell komplexe Berichte zu erstellen. Hier sind einige Ideen, wie die BigQuery-Fensterfunktionen verwendet werden können: Einstufung Ihrer Mitarbeiter nach Leistung, um motivierende Belohnungen zu vergeben. In diesem Artikel findenSie weitere Informationen zum Ranking von Zeilen. Herausfinden, wie jede Produktlinie im Vergleich zu anderen ähnlichen Artikeln abgeschnitten hat. Lernen, wie einzelne Produkte den gleitenden Durchschnittsgewinn beeinflussen. Mehr über die Berechnung von gleitenden Durchschnitten in SQL erfahren Sie hier. Vergleich von Daten im Jahresvergleich, um Trends zu erkennen. In diesem Artikel erfahren Sie mehr über die Erstellung von Jahresvergleichen in SQL. Verwendung von laufenden Summen, um genau zu sehen, wie viele Verkäufe zu einem bestimmten Zeitpunkt getätigt wurden. Erfahren Sie hier mehr über die Berechnung von laufenden Summen in SQL. Nächste Schritte mit BigQuery Fensterfunktionen Nachdem Sie nun gesehen haben, was SQL-Fensterfunktionen in BigQuery und anderen Datenbankmanagementsystemen leisten können, ist es an der Zeit, Ihre Kenntnisse in diesem wichtigen Bereich zu erweitern. Ein guter Startpunkt ist der SQL-Kurs LearnSQL.de Fensterfunktionen . Dort lernen Sie Schritt für Schritt, wie Sie die in diesem Artikel vorgestellten Techniken anwenden können, und erhalten eine ausführliche Erklärung zu jedem Thema. Mit über 200 interaktiven Übungen erhalten Sie außerdem reichlich Übung, um sicherzustellen, dass Sie wissen, wie Sie komplexe Informationen in realen Situationen extrahieren können. Wenn Sie nicht weiterkommen, steht Ihnen Hilfe zur Verfügung, und Sie können über Ihren Browser auf Beispieldatenbanken zugreifen. Der Kurs dauert etwa 20 Stunden. Wenn Sie wirklich ein Experte werden wollen, können Sie das Lösen komplexer Probleme noch weiter üben, indem Sie sich durch unser Fensterfunktionen Practice Set arbeiten. Sie werden 100 Beispiele für komplexe Berichte mit drei verschiedenen Datenbanken bearbeiten. Lesen Sie auch diesen Artikel über das Üben von Fensterfunktionen, und erfahren Sie hier mehr über die BigQuery-Syntax. Wenn Sie auf der Suche nach einer hochrangigen Stelle im Bereich Datenanalyse oder Data Science sind, werden Sie im Vorstellungsgespräch höchstwahrscheinlich aufgefordert, Ihre Kenntnisse der SQL-Fensterfunktionen unter Beweis zu stellen. Um eine Vorstellung davon zu bekommen, welche Art von Fragen Ihnen gestellt werden könnten (und wie Sie sie beantworten können), finden Sie hier einen Artikel, der die wichtigsten Fragen zu SQL-Fensterfunktionen im Vorstellungsgespräch behandelt. Machen Sie noch heute den ersten Schritt, um Ihre Datenanalysefähigkeiten auf die nächste Stufe zu heben! Tags: Window Functions Google BigQuery