Agregirane funkcije

Uporaba funkcij za agregacijo podatkov

Agregirane funkcije lahko uporabljamo samostojno, ali v kombinaciji s konstruktom za združevanje vrstic tabele.

- Če agregirano funkcijo uporabljamo samostojno, se le-ta izvede nad vsemi vrsticami tabele. Sintaksa:

> > SELECT AGR_FUNKCIJA(atribut) FROM tabela;

- Ko agregirano funkcijo uporabljamo z združevanjem, se pred izvedbo funkcije vrstice tabele združijo glede na dani pogoj. Potem se agregirana funkcija izvede za vsako skupino vrstic posebej.

> > SELECT AGR_FUNKCIJA(atribut) [,atrx] FROM tabela GROUP BY atrx;

Funkciji MIN in MAX

Sintaksa

> SELECT MIN(atribut) FROM tabela;
> SELECT MAX(atribut) FROM tabla;

Opomba: funkciji MIN in MAX delata za znakovne, številske in datumske podatke.
Funkcija COUNT

Funkcija COUNT prešteje, kolikokrat se vrednost atributa atributx pojavi v tabeli. Sintaksa:

> SELECT COUNT(atributx) FROM tabela;

Opomba: tudi funkcija COUNT dela za znakovne, številske in datumske podatke.

Primera izvedbe funkcije COUNT brez in z združevanjem zapisov
Funkciji SUM in AVG

Funkcija SUM izračuna vsoto vseh vrednosti atributa atributx v tabeli. Sintaksa:

> SELECT SUM(atributx) FROM tabela;

Funkcija AVG izračuna povprečno vrednost atributa atributx v tabeli. Pri tem ne upošteva vrstic z vrednostjo NULL. SIntaksa:

> SELECT AVG(atributx) FROM tabela;

Obe funkciji se lahko uporabljata le za atribute numeričnega tipa (cela ali realna števila).

Primer izvedbe funkcije AVG brez združevanja zapisov in funkcije SUM z združevanjem zapisov
Pogoji, ki se nanašajo na vrednosti funkcij za agregacijo podatkov

Stavek SELECT ima 2 tipa pogojev:

- pogoje, ki se nanašajo na vrednosti atributov - zapišemo jih v konstruktu WHERE
- pogoje, ki se nanašajo na vrednosti, ki jih vrnejo funkcije za agregacijo podatkov - zapišemo jih v konstruktu HAVING

Razlika med WHERE in HAVING

- WHERE filtrira podatke, ki bodo agregirani in ne stolpec, ki ga dobimo kot rezultat agregiranje funkcije.
- HAVING filtrira vrstice po izvedbi agregirane funkcije in se sklicuje ravno na stolpec, ki je rezultat funkcije.

Primer: izpis kategorij knjig, ki imajo nadpovprečno ceno

> SELECT Book.Type, AVG(Book.Price) AS PovprečjeodPrice
> FROM Book
> GROUP BY Book.Type
> HAVING ((Avg(Book.Price))>(select avg(Book.price) From Book));