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
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?
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