Utmaning: Använda Fönsterfunktion
Anta att vi vill lägga till information i tabellen om vilken klass varje användare tillhör baserat på deras kontosaldo.
Klasserna bestäms enligt följande:
- En person vars kontosaldo är bland de lägsta
25%tillhör fjärde klassen; - En person vars kontosaldo är mellan
25%och50%tillhör tredje klassen; - En person vars kontosaldo är mellan
50%och75%tillhör andra klassen; - En person vars kontosaldo är bland de högsta
25%tillhör första klassen.
För att lösa detta problem kan vi använda en fönsterfunktion som heter NTILE().
Funktionen NTILE() är en fönsterfunktion som delar upp raderna i en ordnad partition i ett angivet antal ungefär lika stora grupper, eller "tiles".
Den tilldelar varje rad ett gruppnummer, med början på 1, baserat på vilken grupp den hamnar i.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
I exemplet behöver vi inte ange en PARTITION BY-sats eftersom vi vill tillämpa funktionen NTILE() på hela resultatmängden, inte på specifika delmängder eller partitioner av data.
ORDER BY-satsen är tillräcklig eftersom den definierar ordningen i vilken raderna fördelas i tiles, vilket säkerställer att gruppering sker baserat på den sorterade ordningen av löner över hela tabellen.
Om vi ville beräkna tiles inom specifika grupper (t.ex. avdelningar) skulle vi använda PARTITION BY.
Swipe to start coding
Fyll i luckorna för att använda funktionen NTILE() så att varje kontoinnehavare tilldelas en klass från 1 till 4, där klass 1 har de högsta saldona.
- Använd 4 som antal klasser;
- Sortera efter kolumnen
balancei fallande ordning; - Se till att resultatet visar
account_holder,balanceoch derasclass.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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?
Fantastiskt!
Completion betyg förbättrat till 4.55
Utmaning: Använda Fönsterfunktion
Svep för att visa menyn
Anta att vi vill lägga till information i tabellen om vilken klass varje användare tillhör baserat på deras kontosaldo.
Klasserna bestäms enligt följande:
- En person vars kontosaldo är bland de lägsta
25%tillhör fjärde klassen; - En person vars kontosaldo är mellan
25%och50%tillhör tredje klassen; - En person vars kontosaldo är mellan
50%och75%tillhör andra klassen; - En person vars kontosaldo är bland de högsta
25%tillhör första klassen.
För att lösa detta problem kan vi använda en fönsterfunktion som heter NTILE().
Funktionen NTILE() är en fönsterfunktion som delar upp raderna i en ordnad partition i ett angivet antal ungefär lika stora grupper, eller "tiles".
Den tilldelar varje rad ett gruppnummer, med början på 1, baserat på vilken grupp den hamnar i.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
I exemplet behöver vi inte ange en PARTITION BY-sats eftersom vi vill tillämpa funktionen NTILE() på hela resultatmängden, inte på specifika delmängder eller partitioner av data.
ORDER BY-satsen är tillräcklig eftersom den definierar ordningen i vilken raderna fördelas i tiles, vilket säkerställer att gruppering sker baserat på den sorterade ordningen av löner över hela tabellen.
Om vi ville beräkna tiles inom specifika grupper (t.ex. avdelningar) skulle vi använda PARTITION BY.
Swipe to start coding
Fyll i luckorna för att använda funktionen NTILE() så att varje kontoinnehavare tilldelas en klass från 1 till 4, där klass 1 har de högsta saldona.
- Använd 4 som antal klasser;
- Sortera efter kolumnen
balancei fallande ordning; - Se till att resultatet visar
account_holder,balanceoch derasclass.
Lösning
Tack för dina kommentarer!
single