Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Verwendung von Window-Funktionen | Einige Zusätzliche Themen
Fortgeschrittene Techniken in SQL

Swipe um das Menü anzuzeigen

book
Herausforderung: Verwendung von Window-Funktionen

Betrachten wir die Tabelle bank_accounts, die wir in den vorherigen Abschnitten verwendet haben:

Angenommen, wir möchten der Tabelle Informationen darüber hinzufügen, welcher Klasse jeder Benutzer basierend auf seinem Kontostand angehört.

Die Klassen werden wie folgt bestimmt:

  • Eine Person, deren Kontostand zu den unteren 25% gehört, wird der vierten Klasse zugeordnet;

  • Eine Person, deren Kontostand zwischen 25% und 50% liegt, wird der dritten Klasse zugeordnet;

  • Eine Person, deren Kontostand zwischen 50% und 75% liegt, wird der zweiten Klasse zugeordnet;

  • Eine Person, deren Kontostand zu den oberen 25% gehört, wird der ersten Klasse zugeordnet.

Zur Lösung dieses Problems kann die Fensterfunktion NTILE() verwendet werden.
Die Funktion NTILE() ist eine Fensterfunktion, die die Zeilen in einer geordneten Partition in eine angegebene Anzahl von annähernd gleich großen Gruppen, sogenannte "Tiles", aufteilt.
Jede Zeile erhält eine Gruppennummer, beginnend mit 1, basierend auf der Gruppe, in die sie fällt.

sql

Hinweis

Im Beispiel muss keine PARTITION BY-Klausel angegeben werden, da die NTILE()-Funktion auf das gesamte Ergebnis angewendet werden soll und nicht auf bestimmte Teilmengen oder Partitionen der Daten.
Die ORDER BY-Klausel ist ausreichend, da sie die Reihenfolge festlegt, in der die Zeilen auf die Tiles verteilt werden, und so sicherstellt, dass die Gruppierung auf der sortierten Reihenfolge der Gehälter über die gesamte Tabelle basiert.
Wenn Tiles innerhalb bestimmter Gruppen (z. B. Abteilungen) berechnet werden sollen, würde PARTITION BY verwendet werden.

Aufgabe

Swipe to start coding

Ihre Aufgabe ist es, die Funktion NTILE() anzuwenden, um Informationen über die Klasse jedes Kontoinhabers zu erhalten.

Sie müssen:

  1. Die Anzahl der Klassen als Argument der Funktion angeben.
  2. Eine Sortierung nach dem Kontostand vornehmen, um die Klasse zu bestimmen.
  3. Da wir davon ausgehen, dass die erste Klasse die mit dem höchsten Kontostand ist und so weiter, müssen die Kontostände in absteigender Reihenfolge sortiert werden.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

book
Herausforderung: Verwendung von Window-Funktionen

Betrachten wir die Tabelle bank_accounts, die wir in den vorherigen Abschnitten verwendet haben:

Angenommen, wir möchten der Tabelle Informationen darüber hinzufügen, welcher Klasse jeder Benutzer basierend auf seinem Kontostand angehört.

Die Klassen werden wie folgt bestimmt:

  • Eine Person, deren Kontostand zu den unteren 25% gehört, wird der vierten Klasse zugeordnet;

  • Eine Person, deren Kontostand zwischen 25% und 50% liegt, wird der dritten Klasse zugeordnet;

  • Eine Person, deren Kontostand zwischen 50% und 75% liegt, wird der zweiten Klasse zugeordnet;

  • Eine Person, deren Kontostand zu den oberen 25% gehört, wird der ersten Klasse zugeordnet.

Zur Lösung dieses Problems kann die Fensterfunktion NTILE() verwendet werden.
Die Funktion NTILE() ist eine Fensterfunktion, die die Zeilen in einer geordneten Partition in eine angegebene Anzahl von annähernd gleich großen Gruppen, sogenannte "Tiles", aufteilt.
Jede Zeile erhält eine Gruppennummer, beginnend mit 1, basierend auf der Gruppe, in die sie fällt.

sql

Hinweis

Im Beispiel muss keine PARTITION BY-Klausel angegeben werden, da die NTILE()-Funktion auf das gesamte Ergebnis angewendet werden soll und nicht auf bestimmte Teilmengen oder Partitionen der Daten.
Die ORDER BY-Klausel ist ausreichend, da sie die Reihenfolge festlegt, in der die Zeilen auf die Tiles verteilt werden, und so sicherstellt, dass die Gruppierung auf der sortierten Reihenfolge der Gehälter über die gesamte Tabelle basiert.
Wenn Tiles innerhalb bestimmter Gruppen (z. B. Abteilungen) berechnet werden sollen, würde PARTITION BY verwendet werden.

Aufgabe

Swipe to start coding

Ihre Aufgabe ist es, die Funktion NTILE() anzuwenden, um Informationen über die Klasse jedes Kontoinhabers zu erhalten.

Sie müssen:

  1. Die Anzahl der Klassen als Argument der Funktion angeben.
  2. Eine Sortierung nach dem Kontostand vornehmen, um die Klasse zu bestimmen.
  3. Da wir davon ausgehen, dass die erste Klasse die mit dem höchsten Kontostand ist und so weiter, müssen die Kontostände in absteigender Reihenfolge sortiert werden.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
Wir sind enttäuscht, dass etwas schief gelaufen ist. Was ist passiert?
some-alt