Összegző függvények használata

Ha tudni szeretnénk, hogy egy táblában összesen hány rekord van használjuk a COUNT() fgv-t, amely egy adott oszlop összes nem NULL értékét számolja meg. A COUNT() függvény egysoros eredménylistával tér vissza. Az eredménylista oszlopának a fejlécén a COUNT(id) felirat látható, az a kifejezés, amit a SELECT lekérdezésben használtunk. Tetszőleges feliratot is kiírathatunk a képernyőre, erre használható az AS ‹név› feltétel.

SELECT COUNT(id) AS sorok_szama FROM ‹ táblázat ›

Az előző lekérdezés futtatásakor megjelik a felirat és alatta egy szám.

Ha a SELECT nem tartalmaz WHERE komponenest, akkor a COUNT() a teljes forrástáblázatra vonatkozik, különben csak a WHERE-ben kiválasztott sorokat összegzi. A COUNT() fgv-t használhatjuk a DISTINCT kifejezéssel együtt. Ekkor a COUNT(id) az „id” oszlop különböző elemeit számolja össze.

Alapvető fgv-ek közé tartoznak még a MIN(), MAX(), SUM(), AVG(). A MIN a legkisebb, a MAX a legnagyobb érték kiválasztására szolgál, a SUM(id) az oszlopkifejezés szerinti értékek összegét adja, az AVG(id) az oszlopkifejezésben szereplő értékek átlagát adja. A SUM() és az AVG() fgv-ek mellett is megengedett a DISTINCT használata, ekkor a megfelelő oszlopban azonos értéket tartalmazó sorokat csak egyszer vesszük figyelembe. $$\ \ $$

Feladatok: Dolgozz az utazas adatbázissal!

  1.   Hányfajta utazást kínálunk?(utak)
  2.   Hányfajta országba kínálunk utakat?(orszagok)
  3.   Mennyi a minimális, a maximális és az átlagos út ár?(arak)
  4.   Hány Görögországba tartó út van? (gorog)
  5.   Mennyi lenne az utak árának összege, ha mindből egyet foglalnának?(osszeg)
$$\ \ $$

Sorok csoportosítása: GROUP BY komponens

A GROUP BY feltétel a SELECT utasítás része, amely lényegében összevonja az eredményhalmaz bizonyos elemeit. A SELECT utasítás WHERE feltételében kiválasztott sorokat –a WHERE elmaradása esetén az egész forrástáblázatot- a GROUP BY utasítás oly módon csoportosítja, hogy egy csoportba szervezi mindazokat a sorokat, amelyekben a GROUP BY után megnevezett oszlopok azonos értéket tartalmaznak. Az eredmény-táblázatban ezek a sorok egy összevont sorban jelennek meg.

Ha a SELECT lista összegzőfüggvényt is tartalmaz akkor az összegzőfüggvényeket a megfelelő –összevont – sor által reprezentált csoportokra kell értelmezni. Így pl. az AVG() a csoportátlagot, a MIN() a csoportminimumot adja, a COUNT() a csoportba tartozó sorok számát. $$\ \ $$

Feladatok: Dolgozz az utazas adatbázissal!

  1.   Országonként mennyi az átlagos időtartama az utaknak?(atl_ido)
  2.   Melyik országba hány utat szerveznek?(orszag_utak)
  3.   A szállás kategóriája, azon belül az út típusa szerint hány út van? (szallas_utak)
  4.   Júliusban út típusonként maximum mennyi bevételre számíthatunk, az utak neve szerint névsorban megjelenítve?(jul_tipusok)
$$\ \ $$