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.