Utfordring: Bruk av Vindusfunksjon
Anta at vi ønsker å legge til informasjon i tabellen om hvilken klasse hver bruker tilhører basert på deres kontosaldo.
Klassene bestemmes som følger:
- En person med kontosaldo blant de nederste
25%tilhører fjerde klasse; - En person med kontosaldo mellom
25%og50%tilhører tredje klasse; - En person med kontosaldo mellom
50%og75%tilhører andre klasse; - En person med kontosaldo blant de øverste
25%tilhører første klasse.
For å løse dette problemet kan vi bruke en vindusfunksjon kalt NTILE().
Funksjonen NTILE() er en vindusfunksjon som deler radene i en ordnet partisjon inn i et angitt antall omtrent like store grupper, eller "tiles".
Den tildeler hver rad et gruppenummer, som starter på 1, basert på hvilken gruppe raden havner i.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
I eksempelet trenger vi ikke å angi en PARTITION BY-setning fordi vi ønsker å bruke NTILE()-funksjonen på hele resultatsettet, ikke på spesifikke delmengder eller partisjoner av dataene.
ORDER BY-setningen er tilstrekkelig, da den definerer rekkefølgen radene fordeles i tile-grupper, og sikrer at gruppering skjer basert på sortert rekkefølge av lønningene i hele tabellen.
Hvis vi ønsket å beregne tile-grupper innenfor spesifikke grupper (f.eks. avdelinger), ville vi brukt PARTITION BY.
Swipe to start coding
Fyll ut de tomme feltene for å bruke NTILE()-funksjonen slik at hver kontoinnehaver får tildelt en klasse fra 1 til 4, der klasse 1 har de høyeste saldoene.
- Bruk 4 som antall klasser;
- Sorter etter kolonnen
balancei synkende rekkefølge; - Sørg for at resultatet viser
account_holder,balanceog deresclass.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 4.55
Utfordring: Bruk av Vindusfunksjon
Sveip for å vise menyen
Anta at vi ønsker å legge til informasjon i tabellen om hvilken klasse hver bruker tilhører basert på deres kontosaldo.
Klassene bestemmes som følger:
- En person med kontosaldo blant de nederste
25%tilhører fjerde klasse; - En person med kontosaldo mellom
25%og50%tilhører tredje klasse; - En person med kontosaldo mellom
50%og75%tilhører andre klasse; - En person med kontosaldo blant de øverste
25%tilhører første klasse.
For å løse dette problemet kan vi bruke en vindusfunksjon kalt NTILE().
Funksjonen NTILE() er en vindusfunksjon som deler radene i en ordnet partisjon inn i et angitt antall omtrent like store grupper, eller "tiles".
Den tildeler hver rad et gruppenummer, som starter på 1, basert på hvilken gruppe raden havner i.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
I eksempelet trenger vi ikke å angi en PARTITION BY-setning fordi vi ønsker å bruke NTILE()-funksjonen på hele resultatsettet, ikke på spesifikke delmengder eller partisjoner av dataene.
ORDER BY-setningen er tilstrekkelig, da den definerer rekkefølgen radene fordeles i tile-grupper, og sikrer at gruppering skjer basert på sortert rekkefølge av lønningene i hele tabellen.
Hvis vi ønsket å beregne tile-grupper innenfor spesifikke grupper (f.eks. avdelinger), ville vi brukt PARTITION BY.
Swipe to start coding
Fyll ut de tomme feltene for å bruke NTILE()-funksjonen slik at hver kontoinnehaver får tildelt en klasse fra 1 til 4, der klasse 1 har de høyeste saldoene.
- Bruk 4 som antall klasser;
- Sorter etter kolonnen
balancei synkende rekkefølge; - Sørg for at resultatet viser
account_holder,balanceog deresclass.
Løsning
Takk for tilbakemeldingene dine!
single