Udfordring: Brug af Vinduesfunktion
Antag, at vi ønsker at tilføje information til tabellen om hvilken klasse hver bruger tilhører baseret på deres kontosaldo.
Klasserne bestemmes som følger:
- En person, hvis kontosaldo er i de nederste
25%, vil tilhøre fjerde klasse; - En person, hvis kontosaldo er mellem
25%og50%, vil tilhøre tredje klasse; - En person, hvis kontosaldo er mellem
50%og75%, vil tilhøre anden klasse; - En person, hvis kontosaldo er i de øverste
25%, vil tilhøre første klasse.
For at løse dette problem kan vi bruge en vinduesfunktion kaldet NTILE().
Funktionen NTILE() er en vinduesfunktion, der opdeler rækkerne i en ordnet partition i et angivet antal omtrent lige store grupper eller "tiles".
Den tildeler hver række et gruppenummer, startende fra 1, baseret på hvilken gruppe den tilhører.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
I eksemplet behøver vi ikke angive en PARTITION BY-klausul, fordi vi ønsker at anvende NTILE()-funktionen på hele resultatmængden, ikke på specifikke undergrupper eller partitioner af dataene.
ORDER BY-klausulen er tilstrækkelig, da den definerer rækkefølgen, hvori rækkerne fordeles i tiles, hvilket sikrer, at grupperingen er baseret på den sorterede rækkefølge af lønningerne på hele tabellen.
Hvis vi ønskede at beregne tiles inden for specifikke grupper (f.eks. afdelinger), ville vi bruge PARTITION BY.
Swipe to start coding
Udfyld felterne for at bruge funktionen NTILE(), så hver kontohaver tildeles en klasse fra 1 til 4, hvor klasse 1 har de højeste saldi.
- Brug 4 som antal klasser;
- Sortér efter kolonnen
balancei faldende rækkefølge; - Sørg for, at dit resultat viser
account_holder,balanceog deresclass.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 4.55
Udfordring: Brug af Vinduesfunktion
Stryg for at vise menuen
Antag, at vi ønsker at tilføje information til tabellen om hvilken klasse hver bruger tilhører baseret på deres kontosaldo.
Klasserne bestemmes som følger:
- En person, hvis kontosaldo er i de nederste
25%, vil tilhøre fjerde klasse; - En person, hvis kontosaldo er mellem
25%og50%, vil tilhøre tredje klasse; - En person, hvis kontosaldo er mellem
50%og75%, vil tilhøre anden klasse; - En person, hvis kontosaldo er i de øverste
25%, vil tilhøre første klasse.
For at løse dette problem kan vi bruge en vinduesfunktion kaldet NTILE().
Funktionen NTILE() er en vinduesfunktion, der opdeler rækkerne i en ordnet partition i et angivet antal omtrent lige store grupper eller "tiles".
Den tildeler hver række et gruppenummer, startende fra 1, baseret på hvilken gruppe den tilhører.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
I eksemplet behøver vi ikke angive en PARTITION BY-klausul, fordi vi ønsker at anvende NTILE()-funktionen på hele resultatmængden, ikke på specifikke undergrupper eller partitioner af dataene.
ORDER BY-klausulen er tilstrækkelig, da den definerer rækkefølgen, hvori rækkerne fordeles i tiles, hvilket sikrer, at grupperingen er baseret på den sorterede rækkefølge af lønningerne på hele tabellen.
Hvis vi ønskede at beregne tiles inden for specifikke grupper (f.eks. afdelinger), ville vi bruge PARTITION BY.
Swipe to start coding
Udfyld felterne for at bruge funktionen NTILE(), så hver kontohaver tildeles en klasse fra 1 til 4, hvor klasse 1 har de højeste saldi.
- Brug 4 som antal klasser;
- Sortér efter kolonnen
balancei faldende rækkefølge; - Sørg for, at dit resultat viser
account_holder,balanceog deresclass.
Løsning
Tak for dine kommentarer!
single