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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
SQL-Optimierung und Abfragefunktionen

bookHerausforderung: Verwendung von Window-Funktionen

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

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.

Um dieses Problem zu lösen, können wir eine Fensterfunktion namens NTILE() verwenden.
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.

NTILE(num_buckets) OVER (
    ORDER BY sort_column
)
Note
Hinweis

In diesem Beispiel müssen wir keine PARTITION BY-Klausel angeben, da wir die Funktion NTILE() auf das gesamte Ergebnis anwenden möchten 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 wir Tiles innerhalb bestimmter Gruppen (z. B. Abteilungen) berechnen wollten, würden wir PARTITION BY verwenden.

Aufgabe

Swipe to start coding

Füllen Sie die Lücken aus, um die Funktion NTILE() so zu verwenden, dass jedem Kontoinhaber eine Klasse von 1 bis 4 zugewiesen wird, wobei Klasse 1 die höchsten Kontostände enthält.

  • Verwenden Sie 4 als Anzahl der Klassen;
  • Sortieren Sie nach der Spalte balance in absteigender Reihenfolge;
  • Das Ergebnis soll account_holder, balance und deren class anzeigen.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Suggested prompts:

How do I use the NTILE() function to classify users into these classes?

Can you show an example SQL query that implements this classification?

What does the output table look like after adding the class information?

close

bookHerausforderung: Verwendung von Window-Funktionen

Swipe um das Menü anzuzeigen

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

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.

Um dieses Problem zu lösen, können wir eine Fensterfunktion namens NTILE() verwenden.
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.

NTILE(num_buckets) OVER (
    ORDER BY sort_column
)
Note
Hinweis

In diesem Beispiel müssen wir keine PARTITION BY-Klausel angeben, da wir die Funktion NTILE() auf das gesamte Ergebnis anwenden möchten 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 wir Tiles innerhalb bestimmter Gruppen (z. B. Abteilungen) berechnen wollten, würden wir PARTITION BY verwenden.

Aufgabe

Swipe to start coding

Füllen Sie die Lücken aus, um die Funktion NTILE() so zu verwenden, dass jedem Kontoinhaber eine Klasse von 1 bis 4 zugewiesen wird, wobei Klasse 1 die höchsten Kontostände enthält.

  • Verwenden Sie 4 als Anzahl der Klassen;
  • Sortieren Sie nach der Spalte balance in absteigender Reihenfolge;
  • Das Ergebnis soll account_holder, balance und deren class anzeigen.

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 4
single

single

some-alt