GREATEST |
Meilleure |
| BigQuery |
Syntaxe
Paramètres
| Nom |
Description |
| X1,...,XN |
Ces paramètres permettent de spécifier une liste de deux valeurs ou plus. La fonction GREATEST comparera toutes ces valeurs et renverra la plus grande d'entre elles. Tous les paramètres doivent être de types de données compatibles pour la comparaison. |
Description
Cette fonction permet demander la plus grande valeur parmi la liste des valeurs spécifié.
Remarques
- La fonction GREATEST() renvoie la valeur maximale parmi plusieurs expressions : Elle permet de comparer plusieurs expressions numériques ou de type DATE,
STRING,..., et retourne celle qui est considérée comme la plus grande selon l'ordre naturel de tri du type concerné. C'est donc un outil puissant pour détecter une valeur
dominante dans une ligne.
- Elle prend en charge un nombre variable d'arguments (deux minimum) : GREATEST() accepte au moins deux paramètres, mais peut en gérer davantage sans limite
stricte (selon les capacités du moteur SQL). Cela permet d'effectuer des comparaisons complexes directement dans une seule instruction.
- Tous les arguments doivent être de types compatibles : La fonction exige que les paramètres soient de types de données compatibles entre eux (par exemple,
tous numériques, ou toutes dates). En cas d'incompatibilité (exemple : mix de STRING et INT64), une erreur sera générée. Il peut être nécessaire d'utiliser CAST()
pour homogénéiser les types.
- Le comportement avec des valeurs NULL mérite attention : Si au moins un des arguments est NULL et qu'aucune des autres valeurs n'est clairement
supérieure, le résultat peut être NULL. Il est donc prudent de prévoir des traitements spécifiques (exemple : IFNULL, COALESCE) si l'on souhaite garantir une
sortie non-nulle.
- Elle peut être utilisée avec différents types comme les dates ou les chaînes : Outre les types numériques, GREATEST() fonctionne avec des dates (DATE,
DATETIME, TIMESTAMP) ou des chaînes (STRING). Pour les chaînes, la comparaison est lexicographique (selon l'ordre alphabétique Unicode), ce qui peut donner des
résultats inattendus si les données sont hétérogènes.
- Elle est utile pour extraire la "valeur gagnante" dans une ligne de données : Dans les analyses ou rapports, on peut vouloir connaître la valeur maximale
entre plusieurs colonnes pour chaque ligne. Par exemple, entre trois scores d'examens ou plusieurs montants financiers, GREATEST() permet d'identifier le pic
d'activité ou de performance.
- Elle simplifie le code par rapport à des CASE WHEN imbriqués : Sans cette fonction, on devrait recourir à des constructions plus complexes avec CASE ou
des sous-requêtes pour déterminer la plus grande valeur entre plusieurs champs. GREATEST() rend ces opérations beaucoup plus lisibles et concises.
- Elle peut être combinée avec LEAST() pour identifier les bornes d'un ensemble : Dans certaines situations, on souhaite à la fois connaître la plus petite
et la plus grande valeur d'un ensemble. Utiliser GREATEST() conjointement avec LEAST() permet d'encadrer les valeurs ou de calculer des plages (intervalle entre min et
max par exemple).
Dernière mise à jour : Jeudi, le 18 Juin 2020