Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele GROUP BY -Lauseke | Ryhmittely
Keskitaso SQL

Pyyhkäise näyttääksesi valikon

book
GROUP BY -Lauseke

Tervetuloa Keskitaso SQL -kurssille!

Ensimmäisessä osiossa sukellamme siihen, miten voimme ryhmitellä ja yhdistää tietoja taulukoissamme.

Ymmärretään, mitä "tietojen ryhmittely" tarkoittaa yksinkertaisen esimerkin avulla työntekijöiden taulukosta:

Tietojen ryhmittely

Meillä on tehtävä selvittää, kuinka monta työntekijää on kussakin osastossa. Tätä varten ryhmittelemme tiedot department-sarakkeen mukaan ja käytämme aggregointia COUNT(*)-funktion kanssa.

Tältä toteutus näyttää:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

Joten, kuten näet, syntaksi tietojen ryhmittelyyn näyttää tältä:

sql

Huom

AGG_FUNC tarkoittaa aggregaattifunktioita kuten MAX, MIN, COUNT, jne.

Tämä syntaksi on olemassa löytääkseen tiettyjä arvoja käyttämällä aggregaattifunktioita tietyissä sarakkeissa.

Katsotaanpa toista esimerkkiä: meille on annettu tehtäväksi löytää osasto, jolla on korkein keskipalkka.

Tällaisten tietojen hakemiseksi meidän on ryhmiteltävä tiedot department-sarakkeen mukaan ja käytettävä sitten AVG()-funktiota keskipalkan laskemiseen:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

Tässä osassa käsittelemme Montrealin metrojärjestelmän tietokantaa, joka sisältää metro_travel_time taulukon.

Tämä taulukko sisältää tietoa asemalinjasta (line_name), sen nimestä (station_name) ja ajan määrästä, joka junalta kestää matkustaa asemalta seuraavalle (time_to_next_station).

Tältä tämä taulukko näyttää ja sen datan esikatselu:

Kuten näet, tämä ei ole monimutkainen taulukko. Mietitään, missä voimme käyttää ryhmittelyä tässä.

Ilmeisin vaihtoehto on ryhmittely metrolinjojen värien mukaan. Tämä tarkoittaa, että voimme yhdistää dataa ryhmittelemällä sen metrolinjan värin mukaan.

Alias

Tehtävissä käytät usein käsitettä nimeltä alias. Alias on käytännössä "lempinimi" sarakkeelle, jonka haet SELECT-lauseella. Se määritellään seuraavalla syntaksilla:

sql

Alias vaikuttaa vain siihen, miten sarake näkyy vastauksessa.

Esimerkiksi, MAX(time) sijaan saraketta voitaisiin kutsua max_time, jos määrität sille tämän aliaksen. Tämä tekee tulosteesta luettavamman ja selkeämmän.

Tehtävä

Swipe to start coding

Tehtäväsi on löytää pisin aika seuraavalle asemalle jokaisella linjalla. Tämä auttaa meitä määrittämään pisimmän matkustusajan asemien välillä jokaiselle metro-linjalle. Tämän tekemiseksi käytä MAX()-funktiota ja anna sille alias max_time, ryhmittelemällä tiedot line_name-sarakkeen mukaan.

Lyhyet ohjeet

  • Hae line_name-sarake ja time_to_next_station-sarakkeen maksimiarvo.
  • Lisää alias max_time maksimiarvolle.
  • Ryhmittele tiedot line_name-sarakkeen mukaan.

Kun olet suorittanut tämän tehtävän, napsauta -painiketta koodin alapuolella tarkistaaksesi ratkaisusi.

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 1. Luku 1
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?

Kysy tekoälyä

expand
ChatGPT

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

book
GROUP BY -Lauseke

Tervetuloa Keskitaso SQL -kurssille!

Ensimmäisessä osiossa sukellamme siihen, miten voimme ryhmitellä ja yhdistää tietoja taulukoissamme.

Ymmärretään, mitä "tietojen ryhmittely" tarkoittaa yksinkertaisen esimerkin avulla työntekijöiden taulukosta:

Tietojen ryhmittely

Meillä on tehtävä selvittää, kuinka monta työntekijää on kussakin osastossa. Tätä varten ryhmittelemme tiedot department-sarakkeen mukaan ja käytämme aggregointia COUNT(*)-funktion kanssa.

Tältä toteutus näyttää:

123
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
copy

Joten, kuten näet, syntaksi tietojen ryhmittelyyn näyttää tältä:

sql

Huom

AGG_FUNC tarkoittaa aggregaattifunktioita kuten MAX, MIN, COUNT, jne.

Tämä syntaksi on olemassa löytääkseen tiettyjä arvoja käyttämällä aggregaattifunktioita tietyissä sarakkeissa.

Katsotaanpa toista esimerkkiä: meille on annettu tehtäväksi löytää osasto, jolla on korkein keskipalkka.

Tällaisten tietojen hakemiseksi meidän on ryhmiteltävä tiedot department-sarakkeen mukaan ja käytettävä sitten AVG()-funktiota keskipalkan laskemiseen:

123
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
copy

Tässä osassa käsittelemme Montrealin metrojärjestelmän tietokantaa, joka sisältää metro_travel_time taulukon.

Tämä taulukko sisältää tietoa asemalinjasta (line_name), sen nimestä (station_name) ja ajan määrästä, joka junalta kestää matkustaa asemalta seuraavalle (time_to_next_station).

Tältä tämä taulukko näyttää ja sen datan esikatselu:

Kuten näet, tämä ei ole monimutkainen taulukko. Mietitään, missä voimme käyttää ryhmittelyä tässä.

Ilmeisin vaihtoehto on ryhmittely metrolinjojen värien mukaan. Tämä tarkoittaa, että voimme yhdistää dataa ryhmittelemällä sen metrolinjan värin mukaan.

Alias

Tehtävissä käytät usein käsitettä nimeltä alias. Alias on käytännössä "lempinimi" sarakkeelle, jonka haet SELECT-lauseella. Se määritellään seuraavalla syntaksilla:

sql

Alias vaikuttaa vain siihen, miten sarake näkyy vastauksessa.

Esimerkiksi, MAX(time) sijaan saraketta voitaisiin kutsua max_time, jos määrität sille tämän aliaksen. Tämä tekee tulosteesta luettavamman ja selkeämmän.

Tehtävä

Swipe to start coding

Tehtäväsi on löytää pisin aika seuraavalle asemalle jokaisella linjalla. Tämä auttaa meitä määrittämään pisimmän matkustusajan asemien välillä jokaiselle metro-linjalle. Tämän tekemiseksi käytä MAX()-funktiota ja anna sille alias max_time, ryhmittelemällä tiedot line_name-sarakkeen mukaan.

Lyhyet ohjeet

  • Hae line_name-sarake ja time_to_next_station-sarakkeen maksimiarvo.
  • Lisää alias max_time maksimiarvolle.
  • Ryhmittele tiedot line_name-sarakkeen mukaan.

Kun olet suorittanut tämän tehtävän, napsauta -painiketta koodin alapuolella tarkistaaksesi ratkaisusi.

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 1. Luku 1
Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Pahoittelemme, että jotain meni pieleen. Mitä tapahtui?
some-alt