Problém:
Chtěli byste najít maximální hodnotu číselného sloupce.
Příklad:
Naše databáze obsahuje tabulku s názvem product s údaji v následujících sloupcích:id , name , year a items .
| id | jméno | rok | položky |
|---|---|---|---|
| 1 | housky | 2018 | 345 |
| 2 | čokoláda | 2017 | 123 |
| 3 | máslo | 2019 | 34 |
| 4 | housky | 2019 | 456 |
| 5 | máslo | 2018 | 56 |
| 6 | máslo | 2017 | 78 |
| 7 | čokoláda | 2019 | 87 |
| 8 | čokoláda | 2018 | 76 |
Pojďme najít maximální počet prodaných položek za všechny roky.
Řešení:
SELECT MAX(items) as max_items FROM product;
Zde je výsledek:
| max_items |
|---|
| 456 |
Diskuse:
Chcete-li zjistit maximální hodnotu sloupce, použijte MAX() agregační funkce; jako svůj argument bere název sloupce, pro který chcete najít maximální hodnotu. Pokud jste nezadali žádné další sloupce v SELECT klauzule, bude vypočítáno maximum pro všechny záznamy v tabulce. V našem příkladu dotaz vrátí maximální počet ze všech položek.
Samozřejmě, protože se jedná o agregační funkci, MAX() lze použít i se skupinami. Pokud bychom například chtěli vidět maximální počet prodaných položek v každém roce, můžeme napsat tento dotaz:
SELECT year, MAX(items) AS max_items FROM product GROUP BY year;
Pro každou skupinu se vypočítá maximum:
| rok | max_items |
|---|---|
| 2018 | 345 |
| 2017 | 123 |
| 2019 | 456 |