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 |