1 / 12

Aggregaattifunktiot (1)

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)

cruz
Download Presentation

Aggregaattifunktiot (1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Aggregaattifunktiot (2) • Kirjoitetaan kyselyn SELECT-osaan muodossa Funktio(Attribuutti) • Kyselyssä lisäksi normaalit osat FROM ja WHERE, jotka toimivat normaalisti

  3. 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

  4. 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;

  5. 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;

  6. 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;

  7. 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;

  8. 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

  9. 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!

  10. Ryhmittelyattribuutit (3) SELECT ToimittajaId, MIN(Hinta), MAX(Hinta) FROM Tuote GROUP BY ToimittajaId;

  11. 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;

  12. Ryhmittelyattribuutit (5)

More Related