Agregační funkce

From Wikivyuka
Revision as of 14:17, 1 August 2014 by Dur30 (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Agregační funkce představují možnost sloučit záznamy či hodnoty do skupin a nad nimi provézt aritmetickou či statistickou operaci. Výsledkem jsou například počty záznamů (COUNT), součet hodnot (SUM), maximální hodnota (MAX) ze sady numerických hodnot apod. Seznam a význam agregačních funkcí:

COUNT(*) navrací počet počet řádků ve výsledku dotazu
COUNT(DISTINCT)  počet jedinečných výskytů hodnot 
SUM()            součet numerických hodnot ze zadaného sloupce/pole hodnot
AVG()            aritmetický průměr z numerických platných hodnot 
MIN()            minimální hodnotu z numerických platných hodnot 
MAX()            maximální hodnota z numerických platných hodnot
STD()            směrodatnou odchylku
GROUP BY sloučí záznamy se stejnými hodnotami určeného atributu a vytvoří souhrnnou hodnotu

Chceme-li zjistit počet všech zaměstnanců, použijeme operaci COUNT:

SELECT COUNT(*) FROM employees;

Chceme-li zjistit kolik zaměstnanců dostává provizi, použijeme operaci COUNT s názvem sloupce:

SELECT COUNT(commission_pct) FROM employees;

Počet je jiný, protože ve sloupci commission_pct jsou i hodnoty NULL, které funkce nezapočítává.

Jaký je nejvyšší plat v oddělení 80? SELECT MAX(salary) FROM employees WHERE DEPARTMENT_ID=80;

Agregační funkce nelze použít v podmínce za WHERE, ale je možné je použít při seskupování za klauzulí GROUP BY. Chceme-li zjistit minimální platy v každém oddělení, seskupíme palty podle oddělení a v každé skupině je pak zjištěno minimum:

SELECT MIN(salary), department_id FROM employees GROUP BY department_id;