Agregačné funkcie

Agregačné funkcie sú typy dopytov, ktoré spracovávajú hodnoty z celých stĺpcov tabuľky. Zadávame ich do zoznamu výstupných položiek za príkaz SELECT.

AVG(nazov_stĺpca) – vráti aritmetický priemer z množiny hodnôt v stĺpci
COUNT(DISTINCT nazov_stĺpca) – spočíta počet jedinečných hodnôt v stĺpci
COUNT(nazov_stĺpca) – spočíta počet hodnôt v stĺpci
MAX(nazov_stĺpca) – vráti maximálnu hodnotu z množiny údajov
MIN(nazov_stĺpca) – vráti minimálnu hodnotu z množiny údajov
SUM(nazov_stĺpca) – vráti súčet hodnôt v množine údajov
STD(nazov_stĺpca) – vykoná súčet číselných hodnôt v stĺpci
VAR([DISTINCT | ALL] nazov_stĺpca) – vráti varianciu pre skupinu záznamov
STDEV([DISTINCT | ALL] nazov_stĺpca) – vráti štandardnú odchýlku (odmocninu z variancie) pre skupinu záznamov.


 

AVG

Ak chceme zistiť priemerný vek v našej tabuľke, samozrejme za predpokladu, že naša tabuľka obsahuje údaj o veku jednotlivých záznamov, použijeme príkaz AVG. Položky s hodnotou Null sa neuvažujú. Príkaz SELECT bude potom vyzerať nasledovne:

Príklad:

SELECT AVG(vek) FROM udaje;


COUNT

Pre spočítanie všetkých údajov v tabuľke použijeme príkaz COUNT. Nasledovným príkazom si zistíme počet zadefinovaných záznamov v tabuľke.

Príklad:

SELECT COUNT(*) FROM udaje;


Ak by sme si do tabuľky pridali atribúty "usek" a "funkcia" a chceli by sme určiť zoznam úsekov a koľko osôb pracuje na akých funkciách na jednotlivých oddeleniach urobíme to nasledovne:

Príklad:

SELECT usek, funkcia, COUNT() as 'pocet' FROM udaje GROUP BY usek, funkcia;


usek funkcia pocet
ekonomicky riaditel 2
asistent 1
uctovnik 7
obchodny riaditel 1
asistent 1
uctovnik 0

Vo viacvrstvovej agregácii záleží na poradí zložiek agregačného kľúča. Ak toto poradie z predchádzajúceho príkladu obrátime, potom dostaneme odlišný výstup ako ukazuje nasledujúca tabuľka:

Príklad:

SELECT funkcia, usek COUNT() as 'pocet' FROM udaje GROUP BY funkcia, usek;


funkcia usek pocet
riaditel ekonomicky 2
obchodny 1
asistent ekonomicky 1
obchodny 1
uctovnik ekonomicky 7
obchodny 0


SUM

Ako príklad si spočítame napríklad roky všetkých osôb v tabuľke.

Príklad:

SELECT SUM(vek) as 'vek_spolu' FROM udaje;

vek_spolu
152


MIN a MAX

Ako príklad si zistíme najnižší a najvyšší vek v tabuľke.

Príklad:

SELECT MIN(vek) as 'min_vek', MAX(vek) as 'max_vek' FROM udaje;


min_vek max_vek
21 45