MIN | Minimum |
|---|---|
| Oracle Database SQL | Oracle 6 ou supérieur |
Syntaxe
| Min(argument) |
Paramètres
| Nom | Description |
|---|---|
| argument | Ce paramètre permet d'indiquer que le champ devant être comparer. |
Description
Cette fonction retourne la plus basse valeur d'une liste d'argument.
Remarques
- La fonction MIN fait partie des fonctions d'agrégation les plus fondamentales en SQL. Elle permet de retrouver la valeur la plus basse dans un ensemble de données, ce qui est essentiel pour les analyses statistiques simples ou les rapports.
- MIN peut être utilisée avec des types de données numériques, date/heure et même des chaînes de caractères. Pour ces dernières, la fonction retourne la valeur lexicographiquement la plus basse, selon l'ordre des caractères.
- L'utilisation la plus fréquente de MIN est avec la clause GROUP BY pour obtenir la valeur minimale par groupe. Cela facilite par exemple l'extraction de la première date d'un événement par catégorie ou région.
- Lorsque le jeu de résultats ne contient aucune ligne, MIN retourne la valeur NULL. Cela est important à prendre en compte lors du traitement des résultats, pour éviter des erreurs ou des comportements inattendus.
- En mode analytique, MIN(...) OVER (...) permet d'obtenir la valeur minimale dans une fenêtre définie sans réduire le nombre de lignes retournées. Cela est utile pour enrichir chaque ligne avec une référence minimale locale.
- La fonction MIN ignore automatiquement les valeurs NULL dans ses calculs. Cela signifie que les données manquantes ne faussent pas le résultat et ne nécessitent pas d'être filtrées systématiquement.
- MIN est une fonction déterministe : elle retournera toujours le même résultat pour un même jeu de données. Cette propriété est essentielle pour assurer la cohérence des rapports et analyses.
- Il est possible d'utiliser MIN dans des sous-requêtes corrélées afin d'effectuer des comparaisons ou des filtrages complexes. Par exemple, pour retrouver les lignes correspondant à la date la plus ancienne dans un groupe.
- Le fonctionnement de MIN est très efficace lorsque la colonne concernée est indexée, notamment par un index B-tree. Cela accélère la recherche de la plus petite valeur, même sur des tables volumineuses.
- L'usage de MIN dans une requête combinée avec d'autres colonnes non agrégées nécessite souvent l'utilisation d'une clause GROUP BY ou d'une fonction analytique. Sinon, cela provoque une erreur syntaxique.
- MIN peut être employée pour des types personnalisés tant que ceux-ci supportent une comparaison ordinale. Par exemple, dans le cadre d'objets Oracle où des opérateurs de comparaison sont définis.
- Enfin, MIN est souvent utilisée en conjonction avec d'autres fonctions comme MAX, AVG ou COUNT pour fournir un panorama complet des données statistiques. Cela facilite la prise de décision basée sur les tendances observées.
Exemple
Voici un exemple permettant d'afficher les plus petites valeurs en contournant le problème qu'il n'accepte pas une liste de valeurs directement comme paramètre dans la fonction :
- SELECT 'MIN(5,-18)=' AS Text,min(X) AS Result FROM (SELECT 5 AS X FROM DUAL UNION SELECT -18 AS X FROM DUAL) UNION
- SELECT 'MIN(0.25,0.115)=' AS Text, min(X) AS Result FROM (SELECT 0.25 AS X FROM DUAL UNION SELECT 0.115 AS X FROM DUAL) UNION
- SELECT 'MIN(1,2,3,4,5)=' AS Text,min(X) AS Result FROM (SELECT 1 AS X FROM DUAL UNION SELECT 2 AS X FROM DUAL UNION SELECT 3 AS X FROM DUAL UNION SELECT 4 AS X FROM DUAL UNION SELECT 5 AS X FROM DUAL) UNION
- SELECT 'MIN(5,4,3,2,1)=' AS Text, min(X) AS Result FROM (SELECT 5 AS X FROM DUAL UNION SELECT 4 AS X FROM DUAL UNION SELECT 3 AS X FROM DUAL UNION SELECT 2 AS X FROM DUAL UNION SELECT 1 AS X FROM DUAL) UNION
- SELECT 'MIN(24,34,13,72,100,1,34)=' AS Text, min(X) AS Result FROM (SELECT 24 AS X FROM DUAL UNION SELECT 34 AS X FROM DUAL UNION SELECT 13 AS X FROM DUAL UNION SELECT 72 AS X FROM DUAL UNION SELECT 100 AS X FROM DUAL UNION SELECT 1 AS X FROM DUAL UNION SELECT 34 AS X FROM DUAL);
on obtiendra le résultat suivant :
| TEXT | RESULT |
| MIN(0.25,0.115)= | ,115 |
| MIN(1,2,3,4,5)= | 1 |
| MIN(24,34,13,72,100,1,34)= | 1 |
| MIN(5,-18)= | -18 |
| MIN(5,4,3,2,1)= | 1 |
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015