Dans MariaDB, MAX()
est une fonction d'agrégation qui renvoie la valeur maximale dans une expression donnée.
Syntaxe
La syntaxe ressemble à ceci :
MAX([DISTINCT] expr)
Exemple de données
Supposons que nous ayons un tableau avec les données suivantes :
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products;
Résultat :
+----------+---------------------------------+--------------+ | 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 | +----------+---------------------------------+--------------+
Exemple
Nous pouvons utiliser la requête suivante pour obtenir le prix maximum de cette table.
SELECT MAX(ProductPrice)
FROM Products;
Résultat :
245.00
Dans ce cas, les informations de prix sont stockées dans le ProductPrice
colonne, et nous la passons donc comme argument au MAX()
fonction, qui calcule ensuite et renvoie le résultat.
Résultats filtrés
Le MAX()
La fonction opère sur les lignes renvoyées par la requête. Donc si vous filtrez les résultats, le résultat de MAX()
reflétera cela.
SELECT MAX(ProductPrice)
FROM Products
WHERE VendorId = 1001;
Résultat :
25.99
Dans ce cas, 25,99 est le prix maximum de tous les produits proposés par le fournisseur spécifié.
Données de date/heure
Vous pouvez utiliser MAX()
sur les valeurs de date/heure.
Supposons que nous ayons le tableau suivant :
SELECT PetName, DOB
FROM Pets;
Résultat :
+---------+------------+ | 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 | +---------+------------+
Nous pouvons utiliser MAX()
pour trouver la date de naissance maximale (DOB
).
SELECT MAX(DOB)
FROM Pets;
Résultat :
2020-11-28
Ce serait la date de naissance du plus jeune animal de compagnie.
NULL
Valeurs
Le MAX()
la fonction ignore tout NULL
valeurs. Dans notre exemple de tableau ci-dessus, les deux dernières lignes ont NULL
valeurs dans leur DOB
colonne, mais cela a été ignoré dans notre MAX()
exemple.
Données de personnage
Lorsqu'il est utilisé avec des colonnes de données de caractères, MAX()
trouve la valeur la plus élevée dans la séquence de classement.
Exemple :
SELECT MAX(ProductName)
FROM Products;
Résultat :
Straw Dog Box
Le DISTINCT
Mot clé
Le DISTINCT
le mot-clé peut être utilisé avec le MAX()
fonction, cependant, cela produit le même résultat que d'omettre DISTINCT
. Autoriser le DISTINCT
permet à MariaDB de se conformer à la norme ISO SQL.
Par conséquent, nous pouvons faire ceci :
SELECT MAX(DISTINCT ProductPrice)
FROM Products;
Résultat :
245.00
Mais cela n'a aucun impact sur les résultats.
Le DISTINCT
le mot-clé peut être très utile lorsqu'il est utilisé avec d'autres contextes (par exemple avec le COUNT()
fonction), mais elle n'a aucune signification lorsqu'elle est utilisée avec MAX()
. Le DISTINCT
le mot-clé supprime les doublons, mais dans le cas de MAX()
cela ne fera aucune différence car MAX()
renvoie le même résultat quel que soit le nombre de lignes partageant la même valeur maximale.
Fonctions de la fenêtre
Le MAX()
la fonction peut être utilisée en conjonction avec le OVER
clause pour créer une fonction de fenêtre.
Voir SQL MAX()
Pour les débutants pour un exemple.