SQL agregační funkce – AVG, COUNT, MAX, MIN, SUM jsou jedny z nejpoužívanějších funkcí jak v Excelu tak i v SQL. Zdaleka nejčastěji totiž potřebujeme něco sečíst, zprůměrovat, určit minimální a maximální hodnotu.
Při aplikaci agregační funkce je přítomnost klauzule GROUP BY povinná (pokud tedy zrovna neprovádíme operace nad okny pomocí OVER()).
Seznam agregačních funkcí:
- AVG() – Vrátí přůměrnou hodnotu ze souboru dat
- COUNT() – Vrátí počet řádků (hodnot)
- MAX() – Vrátí maximální (nejvyšší) hodnotu
- MIN() – Vrátí minimální (nejmenší) hodnotu
- SUM() – Vrátí součet hodnot
Kombinace agregační funkce a klauzule GROUP BY umožňuje data řezat přes různé sloupce (příklad v článku o GROUP BY) to je důležité pro to, abychom mohli snížit atomicitu dat.
Praktický příklad použítí agregačních funkcí:
Mějme tabulku s Tržbami [SalesAmount] a datumem objednávky [OrderDate].
V ukázce použijeme aplikaci všech agregačních funkcí na tržby, nejlépe je to vidět na příkladu.
SELECT
CAST(OrderDate AS DATE) AS Datum_Objednavky,
SUM(SalesAmount) AS Soucet_trzeb,
AVG(SalesAmount) AS Prumer_trzeb,
COUNT(SalesAmount) AS Pocet_trzeb,
MAX(SalesAmount) AS Maximalni_trzba,
MIN(SalesAmount) AS Minimalni_trzba
FROM AdventureWorksDW2014.dbo.FactInternetSales
GROUP BY OrderDate
ORDER BY OrderDate;