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

bookGroup By -Lauseke

Tervetuloa Intermediate SQL -kurssille!

Ensimmäisessä osiossa perehdymme siihen, miten voimme ryhmitellä ja yhdistellä tietoja tauluissamme.

Katsotaanpa, mitä "tietojen ryhmittely" tarkoittaa yksinkertaisen työntekijät-taulun esimerkin avulla:

Tietojen ryhmittely

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

Toteutus näyttää tältä:

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

Kuten huomaat, syntaksi tietojen ryhmittelyyn näyttää tältä:

SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1

Huomio

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

Tämä syntaksi on olemassa tiettyjen arvojen löytämiseksi aggregaattifunktioiden avulla tietyissä sarakkeissa.

Tarkastellaan toista esimerkkiä: meidän tehtävämme on löytää osasto, jolla on korkein keskipalkka.

Tällaisten tietojen hakemiseksi meidän täytyy ryhmitellä tiedot department-sarakkeen mukaan ja käyttää sitten AVG()-funktiota keskipalkan laskemiseen:

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

Tässä osion osassa työskentelemme Montrealin metrojärjestelmän tietokannan kanssa, joka sisältää metro_travel_time-taulun.

Tämä taulu sisältää tietoja asemalinjasta (line_name), sen nimestä (station_name) ja 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ä ei ole monimutkainen 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.

Aliaksen käyttö

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

SELECT column AS alias

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

Esimerkiksi MAX(time)-sarakkeen nimi voisi olla max_time, jos määrität sille tämän aliaksen. Tämä tekee tuloksesta luettavamman ja selkeämmän.

Tehtävä

Swipe to start coding

Tehtävänäsi on selvittää pisin aika seuraavalle asemalle jokaisella linjalla. Näin voimme määrittää pisimmän matkustusajan 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 arvo time_to_next_station-sarakkeesta.
  • Lisää aliaksena max_time suurimmalle arvolle.
  • Ryhmittele tiedot line_name-sarakkeen mukaan.

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

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 1
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

close

Awesome!

Completion rate improved to 4

bookGroup By -Lauseke

Pyyhkäise näyttääksesi valikon

Tervetuloa Intermediate SQL -kurssille!

Ensimmäisessä osiossa perehdymme siihen, miten voimme ryhmitellä ja yhdistellä tietoja tauluissamme.

Katsotaanpa, mitä "tietojen ryhmittely" tarkoittaa yksinkertaisen työntekijät-taulun esimerkin avulla:

Tietojen ryhmittely

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

Toteutus näyttää tältä:

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

Kuten huomaat, syntaksi tietojen ryhmittelyyn näyttää tältä:

SELECT column1, AGG_FUNC(column2)
FROM table
GROUP BY column1

Huomio

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

Tämä syntaksi on olemassa tiettyjen arvojen löytämiseksi aggregaattifunktioiden avulla tietyissä sarakkeissa.

Tarkastellaan toista esimerkkiä: meidän tehtävämme on löytää osasto, jolla on korkein keskipalkka.

Tällaisten tietojen hakemiseksi meidän täytyy ryhmitellä tiedot department-sarakkeen mukaan ja käyttää sitten AVG()-funktiota keskipalkan laskemiseen:

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

Tässä osion osassa työskentelemme Montrealin metrojärjestelmän tietokannan kanssa, joka sisältää metro_travel_time-taulun.

Tämä taulu sisältää tietoja asemalinjasta (line_name), sen nimestä (station_name) ja 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ä ei ole monimutkainen 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.

Aliaksen käyttö

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

SELECT column AS alias

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

Esimerkiksi MAX(time)-sarakkeen nimi voisi olla max_time, jos määrität sille tämän aliaksen. Tämä tekee tuloksesta luettavamman ja selkeämmän.

Tehtävä

Swipe to start coding

Tehtävänäsi on selvittää pisin aika seuraavalle asemalle jokaisella linjalla. Näin voimme määrittää pisimmän matkustusajan 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 arvo time_to_next_station-sarakkeesta.
  • Lisää aliaksena max_time suurimmalle arvolle.
  • 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!

close

Awesome!

Completion rate improved to 4
Osio 1. Luku 1
single

single

some-alt