Syntaxe
|
MAX(expression) [OVER (...)]
|
Paramètres
| Nom |
Description |
| expression |
Ce paramètre permet de spécifier la colonne, le champ ou le calcul numérique (ou autre type de données comparable) pour lequel vous souhaitez trouver la valeur maximale. La fonction MAX retournera la valeur la plus élevée parmi toutes les valeurs non-NULL de cette expression au sein du groupe ou de la partition. |
| OVER (...) |
Ce paramètre facultatif permet de définir une fenêtre d'analyse pour la fonction MAX lorsqu'elle est utilisée comme fonction de fenêtre. Il permet de spécifier un partitionnement (PARTITION BY) et/ou un ordonnancement (ORDER BY) des données, afin que la fonction MAX soit calculée sur un sous-ensemble spécifique de lignes, plutôt que sur l'ensemble de la table ou du groupe. |
Description
Cette fonction permet de demander la valeur la plus grande dans une expression spécifiée.
Remarques
- Fonction d'agrégation standard pour les valeurs maximales : MAX permet de trouver la plus grande valeur parmi un ensemble de valeurs, qu'il s'agisse de
nombres, dates ou chaînes (selon un ordre lexicographique). Elle ignore automatiquement les valeurs NULL, ce qui évite les distorsions dans les résultats.
- Compatible avec différents types de données comparables : La fonction MAX peut être utilisée non seulement avec des nombres, mais aussi avec des chaînes
de caractères (STRING), des dates (DATE/TIMESTAMP) ou même des booléens (où TRUE > FALSE). Cela en fait une fonction polyvalente pour identifier le dernier, le plus
récent ou le plus grand élément.
- Utilisable comme fonction d'agrégation ou analytique : En mode agrégation, MAX calcule la valeur maximale sur un ensemble de lignes (par exemple via
GROUP BY). En mode fenêtre (avec OVER (...)), elle permet d'évaluer des maxima par segment ou au fil du temps, sans réduire le nombre de lignes.
- L'option OVER permet une analyse par groupe ou glissement : Grâce à la clause OVER, on peut appliquer MAX en conservant les lignes d'origine tout en
y ajoutant la valeur maximale calculée par partition (PARTITION BY) ou ordre (ORDER BY). Cela est utile pour des calculs de cumul, de suivi de performances ou de
classement.
- Ignore les valeurs NULL automatiquement : MAX ne prend en compte que les valeurs non-nulles, ce qui évite de devoir filtrer explicitement les champs à
chaque requête. Cela permet une meilleure robustesse des requêtes sur des données incomplètes ou partiellement renseignées.
- Fonction idéale pour les requêtes de résumé ou de reporting : MAX est fréquemment utilisée dans des rapports de synthèse, des dashboards ou des KPI,
par exemple pour connaître la dernière date de connexion, le revenu maximal, ou le score le plus élevé dans un ensemble de données.
- Le comportement avec les chaînes suit l'ordre lexicographique : Lorsqu'on applique MAX sur des STRING, le résultat est basé sur l'ordre alphabétique.
Ainsi, MAX("zebra", "apple", "lion") renverra "zebra". Il faut garder cela en tête pour éviter des confusions si l'on attend un tri numérique déguisé.
- Peut être combinée avec d'autres fonctions analytiques : MAX peut être utilisée avec des fonctions comme IF, CASE, FILTER, ou QUALIFY pour affiner
les conditions d'application. On peut par exemple récupérer la ligne correspondant à la valeur maximale avec une sous-requête ou une clause QUALIFY MAX(...) OVER (...).
Dernière mise à jour : Jeudi, le 18 Juin 2020