Osa 2 | Yhteenveto ja ryhmittely

Koostefunktiot

Joskus on tarpeellista kerätä tietoja ryhmiteltynä. Esimerkiksi verkkokaupan myynneistä voisi olla kiva tietää myynnit tuoteryhmittäin: kuinka paljon on tuottanut tietokoneiden myynti tai kuinka paljon kodinkoneiden myynti. Yleisimmät koostefunktiot ovat:

  • COUNT() laskee rivien määrän
  • SUM() laskee summan arvoista
  • MIN() hakee pienimmän arvon
  • MAX() hakee suurimman arvon

SELECT COUNT(*) FROM Tuotteet;

Laskee kuinka monta riviä on Tuotteet-taulussa

SELECT SUM(hinta) FROM Tuotteet;

Laskee taas mikä on kaikkien tuotteiden yhteenlaskettu summa (eli myynnin kokonaismäärä).

Ryhmittely

Oletetaan, että meillä on seuraavanlainen taulukko:










Kysely SELECT yritys, COUNT(*) FROM Tyontekijat GROUP BY yritys;

kertoo meille, että Amazonilla on 2 työntekijää, Facebookilla 1 ja Googlella 3:

yritys COUNT(*)
Amazon 2
Facebook 1
Google 3

 

Rajaus ryhmittelyn jälkeen

Kun WHERE-lause rajaa hakutuloksia, ryhmittelyn jälkeinen rajaus tehdään HAVING-komennolla. Seuraava komento siis hakee tuoteryhmät , joissa on vähintään 5 erillistä tuotetta ja laskee niiden tuotteiden määrät:

SELECT tuoteryhma, COUNT(*) FROM Tuotteet GROUP BY tuoteryhma HAVING COUNT(*) >=5;

Kysely on siis aina järjestyksessä

SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY;

Kyselyn saa aina halutessaan myös rivittää, esimerkiksi siis

SELECT
 tuoteryhma, COUNT(*)
FROM
 Tuotteet
GROUP BY
 tuoteryhma
HAVING
 COUNT(*) >=5;