Aggregaattifunktiot (1) Mahdollistavat usean rivin yhdistämisen yhdeksi tulostaulun riviksi SQL:ssä seuraavat aggregaattifunktiot: Lukumäärä COUNT Maksimi MAX, minimi MIN Keskiarvo AVG Summa SUM
Aggregaattifunktiot (2) Kirjoitetaan kyselyn SELECT-osaan muodossa Funktio(Attribuutti) Kyselyssä lisäksi normaalit osat FROM ja WHERE, jotka toimivat normaalisti
Aggregaattifunktiot (3) SELECT-osa voi sisältää vain aggregaattifunktioita, tuloksessa vain 1 rivi Edellyttäen, että ryhmittelyattribuutteja ei käytetä Aggregaattifunktioita sisältävät kyselyt evaluoidaan tavalliseen tapaan Muodostetaan FROM-osan relaatio Valitaan WHERE-osassa määritellyt rivit Lasketaan SELECT-osassa määritellyt aggregaattifunktiot
COUNT(Attribuutti) Palauttaa attribuutin arvojen määrän Arvojen ei tarvitse poiketa toisistaan, joten laskee käytännössä relaation rivien määrän Em. syystä attribuutin sijasta voidaan käyttää myös jokerimerkkiä * SELECT COUNT(*) FROM Toimittaja; SELECT COUNT(*) FROM Asiakas, Tilaus WHERE Etunimi=’Hanhikki’ AND AsiakasId=Asiakas.Id; SELECT COUNT(DISTINCT AsiakasId) FROM Tilaus;
MAX(Attribuutti), MIN(Attribuutti) Palauttavat attribuutin arvojen maksimin tai minimin Edellytyksenä, että attribuutin arvojoukko on järjestetty SELECT MAX(Hinta) FROM Tuote; SELECT MIN(Hinta) AS Minimi, MAX(Hinta) AS Maksimi FROM Asiakas, Tilaus, Tuote WHERE Asiakas.Etunimi=’Laupias’ AND Asiakas.Id=AsiakasId AND Tuote.Id=TuoteId;
AVG(Attribuutti) Palauttaa attribuutin arvojen keskiarvon Edellytyksenä, että attribuutin arvojoukko on lukujoukko SELECT AVG(Hinta) FROM Tuote, Toimittaja WHERE Toimittaja.Nimi=’Jaskan vimpain’ AND ToimittajaId=Toimittaja.Id;
SUM(Attribuutti) Palauttaa attribuutin arvojen summan Edellytyksenä, että attribuutin arvojoukko on lukujoukko SELECT SUM(Hinta) FROM Asiakas, Tilaus, Tuote WHERE Asiakas.Etunimi=’Laupias’ AND Asiakas.Id=AsiakasId AND Tuote.Id=TuoteId;
Ryhmittelyattribuutit (1) Toisinaan on tarpeen kohdistaa funktiot pienempiin kokonaisuuksiin Esim. hae kunkin jotain tilanneen asiakkaan tilausten arvo Lisätään kyselyyn GROUP BY –osa, jossa luetellaan ryhmittelyattribuutit
Ryhmittelyattribuutit (2) Evaluointijärjestys Muodostetaan FROM-osan relaatio, Valitaan WHERE-osassa luetellut rivit Etsitään ryhmittelyattribuuttien erilaiset arvoyhdelmät; jokaista erilaista yhdistelmää kohden tuloksessa on yksi rivi Lasketaan arvoyhdelmille SELECT-osassa luetellut aggregaattifunktiot SELECT-osassa vain aggregaattifunktioita ja ryhmittelyattribuutteja!
Ryhmittelyattribuutit (3) SELECT ToimittajaId, MIN(Hinta), MAX(Hinta) FROM Tuote GROUP BY ToimittajaId;
Ryhmittelyattribuutit (4) Hae toimittajien nimet sekä kunkin toimittaja toimittamien tuotteiden minimi- ja maksimihinta SELECT Toimittaja.Nimi, MIN(Hinta), MAX(Hinta) FROM Tuote, Toimittaja WHERE ToimittajaId=Toimittaja.Id GROUP BY Toimittaja.Nimi;
Ryhmittelyattribuutit (5)