SQL MIN()

La fonction d’agrégation MIN() de SQL permet de retourner la plus petite valeur d’une colonne sélectionnée. Cette fonction s’applique aussi bien à des données numériques qu’à des données alphanumériques.

Syntaxe

Pour obtenir la plus petite valeur de la colonne « nom_colonne » il est possible d’utiliser la requête SQL suivante:

SELECT MIN(nom_colonne) FROM table

Étant données qu’il s’agit d’une fonction d’agrégation, il est possible de l’utiliser en complément de la commande GROUP BY. Cela permet de grouper des colonnes et de connaître la plus petite valeur pour chaque groupe. La syntaxe est alors la suivante:

SELECT colonne1, MIN(colonne2)
FROM table
GROUP BY colonne1

Cette exemple permet de grouper tous les enregistrements de « colonne1 » de la table et de connaître la plus petite valeur de « colonne2 » pour chacun de ces regroupement.

Exemple

Imaginons la base de données d’une boutique en ligne qui contient des produits divers. Ces produits possède une catégorie, un nom, un prix et la date à laquelle ils ont été ajouté dans le catalogue.

Table produits :

idcategorienomprixdate_ajout
1informatiqueOrdinateur9802013-01-24
2informatiqueImprimante702013-02-10
3maisonCanapé4502013-02-11
4maisonAspirateur2002013-04-04

Utilisation simple

Pour extraire le prix du produit le moins cher de la catégorie « maison », il est possible d’effectuer la requête SQL ci-dessous:

SELECT MIN(prix)
FROM `produits`
WHERE `categorie` = 'maison'

Résultat :

prix
200

Le résultat montre bien que le prix le moins cher est celui de l’aspirateur qui coûte 200€.

Utilisation dans un GROUP BY

Il est possible de connaître la date du premier ajout dans chaque catégorie. Cela permet de savoir l’article le plus vieux dans le catalogue pour chaque thématiques. Cela s’effectue à l’aide de la requête suivante:

SELECT `categorie`, MIN(date_ajout)
FROM `produits`
GROUP BY `categorie`

Résultats :

categorieMIN(date_ajout)
informatique2013-01-24
maison2013-02-11

Le résultat montre bien que les enregistrements de la table sont regroupé par catégorie et que seul la valeur min de « date_ajout » est extrait. Il est aussi possible de connaître la date du dernier ajout de chaque catégorie en utilisant la fonction MAX().

Partager