Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Ikkunafunktion Käyttö | Joitakin Lisäaiheita
SQL-optimointi ja kyselyominaisuudet

bookHaaste: 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% ja 50%, kuuluu kolmanteen luokkaan;
  • Henkilö, jonka tilisaldo on välillä 50% ja 75%, 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
)
Note
Huomio

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.

Tehtävä

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, balance ja heidän class.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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

bookHaaste: 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% ja 50%, kuuluu kolmanteen luokkaan;
  • Henkilö, jonka tilisaldo on välillä 50% ja 75%, 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
)
Note
Huomio

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.

Tehtävä

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, balance ja heidän class.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 4
single

single

some-alt