Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Använda Fönsterfunktion | Några Ytterligare Ämnen
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
SQL-optimering och Frågefunktioner

bookUtmaning: 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% och 50% tillhör tredje klassen;
  • En person vars kontosaldo är mellan 50% och 75% 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
)
Note
Notering

I exemplet behöver vi inte ange en PARTITION BY-sats eftersom vi vill tillämpa funktionen NTILE()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.

Uppgift

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 balance i fallande ordning;
  • Se till att resultatet visar account_holder, balance och deras class.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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?

close

bookUtmaning: 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% och 50% tillhör tredje klassen;
  • En person vars kontosaldo är mellan 50% och 75% 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
)
Note
Notering

I exemplet behöver vi inte ange en PARTITION BY-sats eftersom vi vill tillämpa funktionen NTILE()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.

Uppgift

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 balance i fallande ordning;
  • Se till att resultatet visar account_holder, balance och deras class.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4
single

single

some-alt