Problem:
Chcesz znaleźć maksymalną wartość kolumny liczbowej.
Przykład:
Nasza baza danych zawiera tabelę o nazwie product z danymi w następujących kolumnach:id , name , year i items .
| id | imię | rok | przedmioty |
|---|---|---|---|
| 1 | bułka | 2018 | 345 |
| 2 | czekolada | 2017 | 123 |
| 3 | masło | 2019 | 34 |
| 4 | bułka | 2019 | 456 |
| 5 | masło | 2018 | 56 |
| 6 | masło | 2017 | 78 |
| 7 | czekolada | 2019 | 87 |
| 8 | czekolada | 2018 | 76 |
Znajdźmy maksymalną liczbę sprzedanych przedmiotów w ciągu wszystkich lat.
Rozwiązanie:
SELECT MAX(items) as max_items FROM product;
Oto wynik:
| max_items |
|---|
| 456 |
Dyskusja:
Aby znaleźć maksymalną wartość kolumny, użyj MAX() funkcja zagregowana; jako argument przyjmuje nazwę kolumny, dla której chcesz znaleźć maksymalną wartość. Jeśli nie określiłeś żadnych innych kolumn w SELECT klauzula, maksimum zostanie obliczone dla wszystkich rekordów w tabeli. W naszym przykładzie zapytanie zwraca maksymalną liczbę spośród wszystkich elementów.
Oczywiście, ponieważ jest to funkcja agregująca, MAX() może być również używany z grupami. Na przykład, jeśli chcemy zobaczyć maksymalną liczbę przedmiotów sprzedawanych w każdym roku, możemy napisać to zapytanie:
SELECT year, MAX(items) AS max_items FROM product GROUP BY year;
Maksimum jest obliczane dla każdej grupy:
| rok | max_items |
|---|---|
| 2018 | 345 |
| 2017 | 123 |
| 2019 | 456 |