Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Brug af Vinduesfunktion | Nogle Yderligere Emner
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
SQL-optimering og Forespørgselsfunktioner

bookUdfordring: 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% og 50%, vil tilhøre tredje klasse;
  • En person, hvis kontosaldo er mellem 50% og 75%, 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
)
Note
Bemærk

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.

Opgave

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 balance i faldende rækkefølge;
  • Sørg for, at dit resultat viser account_holder, balance og deres class.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

bookUdfordring: 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% og 50%, vil tilhøre tredje klasse;
  • En person, hvis kontosaldo er mellem 50% og 75%, 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
)
Note
Bemærk

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.

Opgave

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 balance i faldende rækkefølge;
  • Sørg for, at dit resultat viser account_holder, balance og deres class.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
single

single

some-alt