Haaste: Ikkunafunktion Käyttö
Tarkastellaan bank_accounts
-taulua, jota olemme käyttäneet aiemmissa osioissa:
Oletetaan, että haluamme lisätä tauluun tiedon mihin luokkaan kukin käyttäjä kuuluu tilinsaldon perusteella.
Luokat määritellään seuraavasti:
- Henkilö, jonka tilin saldo on alimmassa
25%
:ssa, kuuluu neljänteen luokkaan; - Henkilö, jonka tilin saldo on välillä
25%
ja50%
, kuuluu kolmanteen luokkaan; - Henkilö, jonka tilin saldo on välillä
50%
ja75%
, kuuluu toiseen luokkaan; - Henkilö, jonka tilin saldo on ylimmässä
25%
:ssa, kuuluu ensimmäiseen luokkaan.
Tämän ongelman ratkaisemiseksi voimme käyttää ikkunafunktiota nimeltä NTILE()
.
NTILE()
-funktio on ikkunafunktio, joka jakaa järjestetyn osion rivit määriteltyyn määrään suunnilleen yhtä suuria ryhmiä eli "tilejä".
Se antaa jokaiselle riville ryhmänumeron alkaen 1
:stä sen mukaan, mihin ryhmään rivi kuuluu.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Huomio
Tässä esimerkissä meidän ei tarvitse määritellä
PARTITION BY
-lausetta, koska haluamme käyttääNTILE()
-funktiota koko tulosjoukkoon, emme tiettyihin osajoukkoihin tai osioihin.
ORDER BY
-lause riittää, koska se määrittää järjestyksen, jossa rivit jaetaan tileihin, varmistaen, että ryhmittely perustuu koko taulun palkkojen järjestykseen.
Jos haluaisimme laskea tilejä tietyissä ryhmissä (esim. osastoittain), käyttäisimmePARTITION BY
-lausetta.
Swipe to start coding
Tehtävänäsi on käyttää NTILE()
-funktiota saadaksesi tietoa kunkin tilinhaltijan luokasta.
Sinun tulee:
- Määrittää luokkien määrä funktion argumenttina.
- Määrittää järjestys tilin saldon perusteella luokan määrittämiseksi.
- Koska oletamme, että ensimmäinen luokka on korkein saldo ja niin edelleen, saldot tulee järjestää laskevaan järjestykseen.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
How do I write a query to assign classes using NTILE() for this table?
Can you explain how NTILE() works with an example using these balances?
What would the result look like after adding the class column?
Awesome!
Completion rate improved to 4.35
Haaste: Ikkunafunktion Käyttö
Pyyhkäise näyttääksesi valikon
Tarkastellaan bank_accounts
-taulua, jota olemme käyttäneet aiemmissa osioissa:
Oletetaan, että haluamme lisätä tauluun tiedon mihin luokkaan kukin käyttäjä kuuluu tilinsaldon perusteella.
Luokat määritellään seuraavasti:
- Henkilö, jonka tilin saldo on alimmassa
25%
:ssa, kuuluu neljänteen luokkaan; - Henkilö, jonka tilin saldo on välillä
25%
ja50%
, kuuluu kolmanteen luokkaan; - Henkilö, jonka tilin saldo on välillä
50%
ja75%
, kuuluu toiseen luokkaan; - Henkilö, jonka tilin saldo on ylimmässä
25%
:ssa, kuuluu ensimmäiseen luokkaan.
Tämän ongelman ratkaisemiseksi voimme käyttää ikkunafunktiota nimeltä NTILE()
.
NTILE()
-funktio on ikkunafunktio, joka jakaa järjestetyn osion rivit määriteltyyn määrään suunnilleen yhtä suuria ryhmiä eli "tilejä".
Se antaa jokaiselle riville ryhmänumeron alkaen 1
:stä sen mukaan, mihin ryhmään rivi kuuluu.
NTILE(num_buckets) OVER (
ORDER BY sort_column
)
Huomio
Tässä esimerkissä meidän ei tarvitse määritellä
PARTITION BY
-lausetta, koska haluamme käyttääNTILE()
-funktiota koko tulosjoukkoon, emme tiettyihin osajoukkoihin tai osioihin.
ORDER BY
-lause riittää, koska se määrittää järjestyksen, jossa rivit jaetaan tileihin, varmistaen, että ryhmittely perustuu koko taulun palkkojen järjestykseen.
Jos haluaisimme laskea tilejä tietyissä ryhmissä (esim. osastoittain), käyttäisimmePARTITION BY
-lausetta.
Swipe to start coding
Tehtävänäsi on käyttää NTILE()
-funktiota saadaksesi tietoa kunkin tilinhaltijan luokasta.
Sinun tulee:
- Määrittää luokkien määrä funktion argumenttina.
- Määrittää järjestys tilin saldon perusteella luokan määrittämiseksi.
- Koska oletamme, että ensimmäinen luokka on korkein saldo ja niin edelleen, saldot tulee järjestää laskevaan järjestykseen.
Ratkaisu
Kiitos palautteestasi!
Awesome!
Completion rate improved to 4.35single