top of page

DISTINCT

La commande DISTINCT s’utilise dans un SELECT ou dans une fonction d’agrégation comme COUNT(). Elle permet de ne sélectionner que les valeurs distinctes, c’est-à-dire différentes les unes des autres, d’une colonne ou d’une combinaison de colonnes.


Voici les syntaxes possibles pour cette commande :


SELECT DISTINCT column1, column2 FROM table_name ;

> Cette commande permet d’obtenir les lignes de la table table_name, pour lesquelles les valeurs des colonnes column1 et column2 forment un doublet unique.


Ou :


SELECT column1, COUNT(DISTINCT(column3) FROM table_name GROUP BY column1;

> Cette commande permet d’afficher le nombre de valeurs distinctes pour la colonne column3, pour chaque valeur de la colonne column1.


Exemple d’utilisation :


Imaginons une base de données ‘gest_fact’, qu’une entreprise a créée pour stocker les données relatives aux factures qu’elle a émises : la liste des produits commercialisés par l’entreprise, la liste des factures émises par l’entreprise et le détail de chaque ligne de facture. ‘Gest_fact’ est constituée de trois tables : ‘produit’, ‘facture’ et ‘ligne_facture’. On souhaite maintenant récupérer la liste des différentes classes de produits commercialisés par l’entreprise. Ces gammes comptant chacune plusieurs produits, on utilise DISTINCT pour éviter d’avoir une liste d’autant de lignes que la table ‘produit’. Voici le code correspondant :


SELECT DISTINCT gamme FROM produit;








Pour comparer, voici ce que donne la requête SELECT gamme FROM produit;










Imaginons maintenant que l'on souhaite calculer le nombre de produits différents ayant été vendus, d’après la table ‘ligne_facture’. Voici le code correspondant :


SELECT COUNT(DISTINCT nom_produit) FROM ligne_facture;







_


Nos formations sur https://www.apprendresql.com/ 


Voir autres : ALTER TABLE, CREATE TABLE, DROP TABLE, AND, AS, AUTO_INCREMENT, AVG(), BETWEEN, COUNT(), CROSS JOIN, DELETE, DISTINCT, FOREIGN KEY, FULL JOIN, GROUP BY, HAVING, IN, INNER JOIN, INSERT, INTERSECT, IS NULL, LEFT JOIN, LIKE, MAX(), MERGE, MIN(), NATURAL JOIN, OR, ORDER BY, PRIMARY KEY, RIGHT JOIN, SELECT, SUM(), UNION, UPDATE, WITH ROLLUP, GRANT, REVOKE, BEGIN TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT


bottom of page