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 |