Uitdaging: Gebruik van Windowfunctie
Stel dat we informatie willen toevoegen aan de tabel over tot welke klasse elke gebruiker behoort op basis van hun rekeningbalans.
De klassen worden als volgt bepaald:
- Een persoon met een rekeningbalans in de onderste
25%behoort tot de vierde klasse; - Een persoon met een rekeningbalans tussen
25%en50%behoort tot de derde klasse; - Een persoon met een rekeningbalans tussen
50%en75%behoort tot de tweede klasse; - Een persoon met een rekeningbalans in de bovenste
25%behoort tot de eerste klasse.
Om dit probleem op te lossen, kunnen we een windowfunctie gebruiken genaamd NTILE().
De functie NTILE() is een windowfunctie die de rijen in een geordende partitie verdeelt in een opgegeven aantal ongeveer gelijke groepen, of "tegels".
Elke rij krijgt een groepsnummer toegewezen, beginnend bij 1, op basis van de groep waarin deze valt.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
In het voorbeeld hoeven we geen PARTITION BY-clausule te specificeren omdat we de NTILE()-functie willen toepassen op het volledige resultaat, niet op specifieke subsets of partities van de gegevens.
De ORDER BY-clausule is voldoende omdat deze de volgorde bepaalt waarin de rijen over de tegels worden verdeeld, zodat de groepering gebaseerd is op de gesorteerde volgorde van de salarissen in de gehele tabel.
Als we tegels binnen specifieke groepen (bijvoorbeeld afdelingen) wilden berekenen, zouden we PARTITION BY gebruiken.
Swipe to start coding
Vul de lege plekken in om de functie NTILE() te gebruiken, zodat elke rekeninghouder wordt toegewezen aan een klasse van 1 tot 4, waarbij klasse 1 de hoogste saldi bevat.
- Gebruik 4 als het aantal klassen;
- Sorteer op de kolom
balancein aflopende volgorde; - Zorg ervoor dat het resultaat
account_holder,balanceen hunclasstoont.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 4.55
Uitdaging: Gebruik van Windowfunctie
Veeg om het menu te tonen
Stel dat we informatie willen toevoegen aan de tabel over tot welke klasse elke gebruiker behoort op basis van hun rekeningbalans.
De klassen worden als volgt bepaald:
- Een persoon met een rekeningbalans in de onderste
25%behoort tot de vierde klasse; - Een persoon met een rekeningbalans tussen
25%en50%behoort tot de derde klasse; - Een persoon met een rekeningbalans tussen
50%en75%behoort tot de tweede klasse; - Een persoon met een rekeningbalans in de bovenste
25%behoort tot de eerste klasse.
Om dit probleem op te lossen, kunnen we een windowfunctie gebruiken genaamd NTILE().
De functie NTILE() is een windowfunctie die de rijen in een geordende partitie verdeelt in een opgegeven aantal ongeveer gelijke groepen, of "tegels".
Elke rij krijgt een groepsnummer toegewezen, beginnend bij 1, op basis van de groep waarin deze valt.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
In het voorbeeld hoeven we geen PARTITION BY-clausule te specificeren omdat we de NTILE()-functie willen toepassen op het volledige resultaat, niet op specifieke subsets of partities van de gegevens.
De ORDER BY-clausule is voldoende omdat deze de volgorde bepaalt waarin de rijen over de tegels worden verdeeld, zodat de groepering gebaseerd is op de gesorteerde volgorde van de salarissen in de gehele tabel.
Als we tegels binnen specifieke groepen (bijvoorbeeld afdelingen) wilden berekenen, zouden we PARTITION BY gebruiken.
Swipe to start coding
Vul de lege plekken in om de functie NTILE() te gebruiken, zodat elke rekeninghouder wordt toegewezen aan een klasse van 1 tot 4, waarbij klasse 1 de hoogste saldi bevat.
- Gebruik 4 als het aantal klassen;
- Sorteer op de kolom
balancein aflopende volgorde; - Zorg ervoor dat het resultaat
account_holder,balanceen hunclasstoont.
Oplossing
Bedankt voor je feedback!
single