I MariaDB, MAX()
är en aggregerad funktion som returnerar det maximala värdet i ett givet uttryck.
Syntax
Syntaxen ser ut så här:
MAX([DISTINCT] expr)
Exempeldata
Anta att vi har en tabell med följande data:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Resultat:
+----------+---------------------------------+--------------+ | 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 | +----------+---------------------------------+--------------+
Exempel
Vi kan använda följande fråga för att få maxpriset från den tabellen.
SELECT MAX(ProductPrice)
FROM Products;
Resultat:
245.00
I det här fallet lagras prisinformation i ProductPrice
kolumnen, och så skickar vi det som ett argument till MAX()
funktion, som sedan beräknar och returnerar resultatet.
Filtrerade resultat
MAX()
funktionen fungerar på raderna som returneras av frågan. Så om du filtrerar resultaten blir resultatet av MAX()
kommer att återspegla det.
SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Resultat:
25.99
I det här fallet är 25,99 maxpriset av alla produkter som erbjuds av den angivna leverantören.
Datum/tiddata
Du kan använda MAX()
på datum/tidsvärden.
Anta att vi har följande tabell:
SELECT PetName, DOB
FROM Pets;
Resultat:
+---------+------------+ | 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 | +---------+------------+
Vi kan använda MAX()
för att hitta det maximala födelsedatumet (DOB
).
SELECT MAX(DOB)
FROM Pets;
Resultat:
2020-11-28
Detta skulle vara födelsedatumet för det yngsta husdjuret.
NULL
Värden
MAX()
funktionen ignorerar någon NULL
värden. I vår exempeltabell ovan har de två sista raderna NULL
värden i deras DOB
kolumn, men det ignorerades i vår MAX()
exempel.
Teckendata
När den används med teckendatakolumner, MAX()
hittar det värde som är högst i sorteringssekvensen.
Exempel:
SELECT MAX(ProductName)
FROM Products;
Resultat:
Straw Dog Box
DISTINCT
Nyckelord
DISTINCT
nyckelordet kan användas med MAX()
funktion, men detta ger samma resultat som att utelämna DISTINCT
. Tillåter DISTINCT
funktionen gör det möjligt för MariaDB att följa ISO SQL-standarden.
Därför kan vi göra detta:
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
Resultat:
245.00
Men det har ingen inverkan på resultaten.
DISTINCT
Nyckelordet kan vara mycket användbart när det används med andra sammanhang (t.ex. med COUNT()
funktion), men den har ingen betydelse när den används med MAX()
. DISTINCT
nyckelordet tar bort dubbletter, men i fallet med MAX()
det kommer inte att göra någon skillnad eftersom MAX()
returnerar samma resultat oavsett hur många rader som delar samma maxvärde.
Fönsterfunktioner
MAX()
funktionen kan användas tillsammans med OVER
klausul för att skapa en fönsterfunktion.
Se SQL MAX()
För nybörjare till exempel.