In MariaDB, MAX()
è una funzione aggregata che restituisce il valore massimo in una determinata espressione.
Sintassi
La sintassi è questa:
MAX([DISTINCT] expr)
Dati di esempio
Supponiamo di avere una tabella con i seguenti dati:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Risultato:
+----------+---------------------------------+--------------+ | 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 | +----------+---------------------------------+--------------+
Esempio
Possiamo usare la seguente query per ottenere il prezzo massimo da quella tabella.
SELECT MAX(ProductPrice)
FROM Products;
Risultato:
245.00
In questo caso, le informazioni sul prezzo sono memorizzate nel ProductPrice
colonna, e quindi lo passiamo come argomento a MAX()
funzione, che quindi calcola e restituisce il risultato.
Risultati filtrati
Il MAX()
La funzione opera sulle righe restituite dalla query. Quindi, se filtri i risultati, il risultato di MAX()
lo rifletterà.
SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Risultato:
25.99
In questo caso, 25,99 è il prezzo massimo tra tutti i prodotti offerti dal fornitore specificato.
Dati data/ora
Puoi usare MAX()
sui valori di data/ora.
Supponiamo di avere la seguente tabella:
SELECT PetName, DOB
FROM Pets;
Risultato:
+---------+------------+ | 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 | +---------+------------+
Possiamo usare MAX()
per trovare la data massima di nascita (DOB
).
SELECT MAX(DOB)
FROM Pets;
Risultato:
2020-11-28
Questa sarebbe la data di nascita dell'animale più giovane.
NULL
Valori
Il MAX()
la funzione ignora qualsiasi NULL
valori. Nella nostra tabella di esempio sopra, le ultime due righe hanno NULL
valori nel loro DOB
colonna, ma è stata ignorata nel nostro MAX()
esempio.
Dati sui personaggi
Se utilizzato con colonne di dati carattere, MAX()
trova il valore più alto nella sequenza di confronto.
Esempio:
SELECT MAX(ProductName)
FROM Products;
Risultato:
Straw Dog Box
Il DISTINCT
Parola chiave
Il DISTINCT
la parola chiave può essere utilizzata con MAX()
funzione, tuttavia, questo produce lo stesso risultato dell'omissione di DISTINCT
. Consentire il DISTINCT
la funzione consente a MariaDB di conformarsi allo standard ISO SQL.
Pertanto, possiamo farlo:
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
Risultato:
245.00
Ma non ha alcun impatto sui risultati.
Il DISTINCT
la parola chiave può essere molto utile se utilizzata con altri contesti (ad es. con COUNT()
funzione), ma non ha significato se usato con MAX()
. Il DISTINCT
la parola chiave rimuove i duplicati, ma nel caso di MAX()
non farà alcuna differenza perché MAX()
restituisce lo stesso risultato indipendentemente dal numero di righe che condividono lo stesso valore massimo.
Funzioni della finestra
Il MAX()
la funzione può essere utilizzata insieme a OVER
clausola per creare una funzione finestra.
Vedi SQL MAX()
Per i principianti per un esempio.