W MariaDB, MAX()
to funkcja agregująca, która zwraca maksymalną wartość w danym wyrażeniu.
Składnia
Składnia wygląda tak:
MAX([DISTINCT] expr)
Przykładowe dane
Załóżmy, że mamy tabelę z następującymi danymi:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Wynik:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Przykład
Możemy użyć następującego zapytania, aby uzyskać maksymalną cenę z tej tabeli.
SELECT MAX(ProductPrice)
FROM Products;
Wynik:
245.00
W takim przypadku informacje o cenie są przechowywane w ProductPrice
kolumna, więc przekazujemy to jako argument do MAX()
funkcja, która następnie oblicza i zwraca wynik.
Przefiltrowane wyniki
MAX()
funkcja działa na wierszach zwróconych przez zapytanie. Więc jeśli filtrujesz wyniki, wynik MAX()
odzwierciedli to.
SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Wynik:
25.99
W tym przypadku 25,99 to maksymalna cena spośród wszystkich produktów oferowanych przez określonego dostawcę.
Dane daty/godziny
Możesz użyć MAX()
o wartościach daty/czasu.
Załóżmy, że mamy następującą tabelę:
SELECT PetName, DOB
FROM Pets;
Wynik:
+---------+------------+ | PetName | DOB | +---------+------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | NULL | | Meow | NULL | +---------+------------+
Możemy użyć MAX()
aby znaleźć maksymalną datę urodzenia (DOB
).
SELECT MAX(DOB)
FROM Pets;
Wynik:
2020-11-28
Byłaby to data urodzenia najmłodszego zwierzaka.
NULL
Wartości
MAX()
funkcja ignoruje każdy NULL
wartości. W naszej przykładowej tabeli powyżej ostatnie dwa wiersze mają wartość NULL
wartości w ich DOB
kolumna, ale zostało to zignorowane w naszej MAX()
przykład.
Dane postaci
W przypadku użycia z kolumnami danych znakowych MAX()
znajduje najwyższą wartość w kolejności zestawiania.
Przykład:
SELECT MAX(ProductName)
FROM Products;
Wynik:
Straw Dog Box
DISTINCT
Słowo kluczowe
DISTINCT
słowo kluczowe może być używane z MAX()
funkcja, jednak daje ten sam wynik, co pominięcie DISTINCT
. Zezwalanie na DISTINCT
funkcja umożliwia MariaDB zgodność ze standardem ISO SQL.
Dlatego możemy to zrobić:
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
Wynik:
245.00
Ale nie ma to wpływu na wyniki.
DISTINCT
słowo kluczowe może być bardzo przydatne w innych kontekstach (np. z COUNT()
funkcja), ale nie ma znaczenia, gdy jest używany z MAX()
. DISTINCT
słowo kluczowe usuwa duplikaty, ale w przypadku MAX()
nie zrobi to żadnej różnicy, ponieważ MAX()
zwraca ten sam wynik, niezależnie od tego, ile wierszy ma tę samą maksymalną wartość.
Funkcje okien
MAX()
funkcja może być używana w połączeniu z OVER
klauzula, aby utworzyć funkcję okna.
Zobacz SQL MAX()
Przykład dla początkujących.