MariaDB
 sql >> Database >  >> RDS >> MariaDB

Funzione MAX() in MariaDB

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.