Group By -Lauseke
Tervetuloa Intermediate SQL -kurssille!
Ensimmäisessä osiossa perehdytään siihen, miten voimme ryhmitellä ja yhdistää tietoja tauluissamme.
Katsotaan, mitä "tietojen ryhmittely" tarkoittaa yksinkertaisen työntekijät-taulun esimerkin avulla:
Tietojen ryhmittely
Tehtävänä on selvittää, kuinka monta työntekijää on kussakin osastossa. Tätä varten ryhmitellään tiedot department-sarakkeen mukaan ja käytetään aggregointia COUNT(*)-funktion avulla.
Toteutus näyttää tältä:
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Kuten huomaat, syntaksi tietojen ryhmittelyyn näyttää tältä:
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Huomautus
AGG_FUNCtarkoittaa aggregaattifunktioita, kutenMAX,MIN,COUNTjne.
Tämä syntaksi on olemassa tiettyjen arvojen löytämiseksi käyttämällä aggregaattifunktioita tietyissä sarakkeissa.
Tarkastellaan toista esimerkkiä: tehtävänä on löytää osasto, jolla on korkein keskipalkka.
Tällaisten tietojen hakemiseksi täytyy ryhmitellä tiedot department-sarakkeen mukaan ja käyttää sitten AVG()-funktiota keskipalkan laskemiseen:
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
Tässä osion kohdassa työskennellään Montrealin metrojärjestelmän tietokannan kanssa, joka sisältää metro_travel_time-taulun.
Tämä taulu sisältää tietoa asemalinjasta (line_name), sen nimestä (station_name) sekä ajasta, joka junalta kestää matkustaa asemalta seuraavalle asemalle (time_to_next_station).
Tältä tämä taulu näyttää ja tässä on esikatselu datasta:
Kuten huomaat, tämä on yksinkertainen taulu. Mietitään, missä voimme käyttää ryhmittelyä tässä.
Ilmeisin vaihtoehto on ryhmittely metrolinjojen värien mukaan. Tämä tarkoittaa, että voimme yhdistää tietoja ryhmittelemällä ne metrolinjan värin perusteella.
Alias
Tehtävissä käytät usein käsitettä nimeltä alias. Alias on käytännössä sarakkeen "lempinimi", jonka määrittelet SELECT-lauseessa. Alias määritellään seuraavalla syntaksilla:
SELECT column AS alias
Alias vaikuttaa vain siihen, miten sarake näkyy vastauksessa.
Esimerkiksi MAX(time)-sarakkeen nimi voidaan muuttaa muotoon max_time, jos määrittelet sille tämän aliaksen. Tämä tekee tuloksista luettavampia ja selkeämpiä.
Swipe to start coding
Tehtävänäsi on löytää pisin aika seuraavalle asemalle jokaisella linjalla. Näin voidaan selvittää pisin matkustusaika asemien välillä jokaisella metro-linjalla. Käytä tähän MAX()-funktiota ja nimeä se aliaksella max_time, ryhmitellen tiedot line_name-sarakkeen mukaan.
Lyhyet ohjeet
- Hae
line_name-sarake ja suurin arvotime_to_next_station-sarakkeesta. - Lisää aliaksena
max_timesuurimmalle arvolle. - Ryhmittele tiedot
line_name-sarakkeen mukaan.
Kun olet suorittanut tehtävän, klikkaa alla olevaa -painiketta tarkistaaksesi ratkaisusi.
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
Group By -Lauseke
Pyyhkäise näyttääksesi valikon
Tervetuloa Intermediate SQL -kurssille!
Ensimmäisessä osiossa perehdytään siihen, miten voimme ryhmitellä ja yhdistää tietoja tauluissamme.
Katsotaan, mitä "tietojen ryhmittely" tarkoittaa yksinkertaisen työntekijät-taulun esimerkin avulla:
Tietojen ryhmittely
Tehtävänä on selvittää, kuinka monta työntekijää on kussakin osastossa. Tätä varten ryhmitellään tiedot department-sarakkeen mukaan ja käytetään aggregointia COUNT(*)-funktion avulla.
Toteutus näyttää tältä:
123SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Kuten huomaat, syntaksi tietojen ryhmittelyyn näyttää tältä:
SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1
Huomautus
AGG_FUNCtarkoittaa aggregaattifunktioita, kutenMAX,MIN,COUNTjne.
Tämä syntaksi on olemassa tiettyjen arvojen löytämiseksi käyttämällä aggregaattifunktioita tietyissä sarakkeissa.
Tarkastellaan toista esimerkkiä: tehtävänä on löytää osasto, jolla on korkein keskipalkka.
Tällaisten tietojen hakemiseksi täytyy ryhmitellä tiedot department-sarakkeen mukaan ja käyttää sitten AVG()-funktiota keskipalkan laskemiseen:
123SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
Tässä osion kohdassa työskennellään Montrealin metrojärjestelmän tietokannan kanssa, joka sisältää metro_travel_time-taulun.
Tämä taulu sisältää tietoa asemalinjasta (line_name), sen nimestä (station_name) sekä ajasta, joka junalta kestää matkustaa asemalta seuraavalle asemalle (time_to_next_station).
Tältä tämä taulu näyttää ja tässä on esikatselu datasta:
Kuten huomaat, tämä on yksinkertainen taulu. Mietitään, missä voimme käyttää ryhmittelyä tässä.
Ilmeisin vaihtoehto on ryhmittely metrolinjojen värien mukaan. Tämä tarkoittaa, että voimme yhdistää tietoja ryhmittelemällä ne metrolinjan värin perusteella.
Alias
Tehtävissä käytät usein käsitettä nimeltä alias. Alias on käytännössä sarakkeen "lempinimi", jonka määrittelet SELECT-lauseessa. Alias määritellään seuraavalla syntaksilla:
SELECT column AS alias
Alias vaikuttaa vain siihen, miten sarake näkyy vastauksessa.
Esimerkiksi MAX(time)-sarakkeen nimi voidaan muuttaa muotoon max_time, jos määrittelet sille tämän aliaksen. Tämä tekee tuloksista luettavampia ja selkeämpiä.
Swipe to start coding
Tehtävänäsi on löytää pisin aika seuraavalle asemalle jokaisella linjalla. Näin voidaan selvittää pisin matkustusaika asemien välillä jokaisella metro-linjalla. Käytä tähän MAX()-funktiota ja nimeä se aliaksella max_time, ryhmitellen tiedot line_name-sarakkeen mukaan.
Lyhyet ohjeet
- Hae
line_name-sarake ja suurin arvotime_to_next_station-sarakkeesta. - Lisää aliaksena
max_timesuurimmalle arvolle. - Ryhmittele tiedot
line_name-sarakkeen mukaan.
Kun olet suorittanut tehtävän, klikkaa alla olevaa -painiketta tarkistaaksesi ratkaisusi.
Ratkaisu
Kiitos palautteestasi!
single