Haaste: Ikkunafunktion Käyttö
Oletetaan, että haluamme lisätä tauluun tiedon siitä, mihin luokkaan kukin käyttäjä kuuluu tilinsaldon perusteella.
Luokat määritellään seuraavasti:
- Henkilö, jonka tilisaldo on alimmassa
25%, kuuluu neljänteen luokkaan; - Henkilö, jonka tilisaldo on välillä
25%ja50%, kuuluu kolmanteen luokkaan; - Henkilö, jonka tilisaldo on välillä
50%ja75%, kuuluu toiseen luokkaan; - Henkilö, jonka tilisaldo on ylimmässä
25%, 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
)
Tässä esimerkissä emme tarvitse PARTITION BY -lausetta, koska haluamme käyttää NTILE()-funktiota koko tulosjoukkoon, emme tiettyihin osajoukkoihin tai osioihin datasta.
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 tilit tiettyjen ryhmien (esim. osastojen) sisällä, käyttäisimme PARTITION BY -lausetta.
Swipe to start coding
Täydennä aukot käyttämällä NTILE()-funktiota niin, että jokaiselle tilinhaltijalle annetaan luokka 1–4, jossa luokka 1 sisältää korkeimmat saldot.
- Käytä lukua 4 luokkien määränä;
- Järjestä
balance-sarakkeen mukaan laskevassa järjestyksessä; - Varmista, että tuloksessa näkyvät
account_holder,balanceja heidänclass.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 4.55
Haaste: Ikkunafunktion Käyttö
Pyyhkäise näyttääksesi valikon
Oletetaan, että haluamme lisätä tauluun tiedon siitä, mihin luokkaan kukin käyttäjä kuuluu tilinsaldon perusteella.
Luokat määritellään seuraavasti:
- Henkilö, jonka tilisaldo on alimmassa
25%, kuuluu neljänteen luokkaan; - Henkilö, jonka tilisaldo on välillä
25%ja50%, kuuluu kolmanteen luokkaan; - Henkilö, jonka tilisaldo on välillä
50%ja75%, kuuluu toiseen luokkaan; - Henkilö, jonka tilisaldo on ylimmässä
25%, 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
)
Tässä esimerkissä emme tarvitse PARTITION BY -lausetta, koska haluamme käyttää NTILE()-funktiota koko tulosjoukkoon, emme tiettyihin osajoukkoihin tai osioihin datasta.
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 tilit tiettyjen ryhmien (esim. osastojen) sisällä, käyttäisimme PARTITION BY -lausetta.
Swipe to start coding
Täydennä aukot käyttämällä NTILE()-funktiota niin, että jokaiselle tilinhaltijalle annetaan luokka 1–4, jossa luokka 1 sisältää korkeimmat saldot.
- Käytä lukua 4 luokkien määränä;
- Järjestä
balance-sarakkeen mukaan laskevassa järjestyksessä; - Varmista, että tuloksessa näkyvät
account_holder,balanceja heidänclass.
Ratkaisu
Kiitos palautteestasi!
single