Herausforderung: 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%und50%liegt, wird der dritten Klasse zugeordnet; - Eine Person, deren Kontostand zwischen
50%und75%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
)
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.
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
balancein absteigender Reihenfolge; - Das Ergebnis soll
account_holder,balanceund derenclassanzeigen.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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?
Großartig!
Completion Rate verbessert auf 4.55
Herausforderung: 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%und50%liegt, wird der dritten Klasse zugeordnet; - Eine Person, deren Kontostand zwischen
50%und75%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
)
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.
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
balancein absteigender Reihenfolge; - Das Ergebnis soll
account_holder,balanceund derenclassanzeigen.
Lösung
Danke für Ihr Feedback!
single