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

Kursinhalt

Fortgeschrittene Techniken in SQL

Fortgeschrittene Techniken in SQL

1. Acid
2. Abfrageoptimierung.Indizes
3. Einige Zusätzliche Themen

book
Herausforderung: Verwendung der Window Function

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

Nehmen wir an, wir möchten der Tabelle Informationen darüber hinzufügen, zu welcher Klasse jeder Benutzer gehört, basierend auf ihrem Kontostand.

Die Klassen werden wie folgt bestimmt:

  • Eine Person, deren Kontostand in den unteren 25% liegt, gehört zur vierten Klasse;
  • Eine Person, deren Kontostand zwischen 25% und 50% liegt, gehört zur dritten Klasse;
  • Eine Person, deren Kontostand zwischen 50% und 75% liegt, gehört zur zweiten Klasse;
  • Eine Person, deren Kontostand in den oberen 25% liegt, gehört zur ersten Klasse.

Um dieses Problem zu lösen, können wir eine Fensterfunktion namens NTILE() verwenden.
Die NTILE()-Funktion ist eine Fensterfunktion, die die Zeilen in einer geordneten Partition in eine angegebene Anzahl von ungefähr gleich großen Gruppen oder "Kacheln" unterteilt.
Sie weist jeder Zeile eine Gruppennummer zu, beginnend bei 1, basierend auf der Gruppe, in die sie fällt.

Hinweis

In diesem Beispiel müssen wir keine PARTITION BY-Klausel angeben, da wir die NTILE()-Funktion auf den gesamten Ergebnissatz anwenden möchten, nicht auf spezifische Untergruppen oder Partitionen der Daten.
Die ORDER BY-Klausel ist ausreichend, da sie die Reihenfolge definiert, in der die Zeilen in Kacheln verteilt werden, und sicherstellt, dass die Gruppierung auf der sortierten Reihenfolge der Gehälter über die gesamte Tabelle basiert.
Wenn wir Kacheln innerhalb spezifischer Gruppen (z.B. Abteilungen) berechnen wollten, würden wir PARTITION BY verwenden.

Aufgabe

Swipe to start coding

Ihre Aufgabe ist es, die NTILE()-Funktion 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 Kontostand vornehmen, um die Klasse zu bestimmen.
  3. Da wir annehmen, dass die erste Klasse die Klasse mit dem höchsten Kontostand ist und so weiter, müssen wir die Kontostände in absteigender Reihenfolge sortieren.

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
toggle bottom row

book
Herausforderung: Verwendung der Window Function

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

Nehmen wir an, wir möchten der Tabelle Informationen darüber hinzufügen, zu welcher Klasse jeder Benutzer gehört, basierend auf ihrem Kontostand.

Die Klassen werden wie folgt bestimmt:

  • Eine Person, deren Kontostand in den unteren 25% liegt, gehört zur vierten Klasse;
  • Eine Person, deren Kontostand zwischen 25% und 50% liegt, gehört zur dritten Klasse;
  • Eine Person, deren Kontostand zwischen 50% und 75% liegt, gehört zur zweiten Klasse;
  • Eine Person, deren Kontostand in den oberen 25% liegt, gehört zur ersten Klasse.

Um dieses Problem zu lösen, können wir eine Fensterfunktion namens NTILE() verwenden.
Die NTILE()-Funktion ist eine Fensterfunktion, die die Zeilen in einer geordneten Partition in eine angegebene Anzahl von ungefähr gleich großen Gruppen oder "Kacheln" unterteilt.
Sie weist jeder Zeile eine Gruppennummer zu, beginnend bei 1, basierend auf der Gruppe, in die sie fällt.

Hinweis

In diesem Beispiel müssen wir keine PARTITION BY-Klausel angeben, da wir die NTILE()-Funktion auf den gesamten Ergebnissatz anwenden möchten, nicht auf spezifische Untergruppen oder Partitionen der Daten.
Die ORDER BY-Klausel ist ausreichend, da sie die Reihenfolge definiert, in der die Zeilen in Kacheln verteilt werden, und sicherstellt, dass die Gruppierung auf der sortierten Reihenfolge der Gehälter über die gesamte Tabelle basiert.
Wenn wir Kacheln innerhalb spezifischer Gruppen (z.B. Abteilungen) berechnen wollten, würden wir PARTITION BY verwenden.

Aufgabe

Swipe to start coding

Ihre Aufgabe ist es, die NTILE()-Funktion 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 Kontostand vornehmen, um die Klasse zu bestimmen.
  3. Da wir annehmen, dass die erste Klasse die Klasse mit dem höchsten Kontostand ist und so weiter, müssen wir die Kontostände in absteigender Reihenfolge sortieren.

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
We're sorry to hear that something went wrong. What happened?
some-alt