DISTINCTE dans PostgreSQL : Sélectionner, trier par et limiter (exemples)
⚡ Résumé intelligent
DISTINCTE dans PostgreSQL Cette clause est utilisée avec une instruction SELECT pour supprimer les lignes en double et ne conserver que les valeurs uniques. Ce document aborde la syntaxe de SELECT, l'interface SQL Shell et pgAdmin, l'utilisation de DISTINCT sur une ou plusieurs colonnes, ainsi que la différence entre DISTINCT et GROUP BY.

Vous pouvez récupérer les données de la table à l'aide d'une instruction SELECT.
syntaxe:
SELECT [column names] FROM [table_name]
Ici,
- Noms des colonnes : Nom des colonnes dont vous souhaitez récupérer la valeur.
- DE: La clause FROM définit une ou plusieurs tables sources pour la requête SELECT.
- nom de la table: Le nom d'une table existante que vous souhaitez interroger.
Qu'est-ce qui est DISTINCT dans PostgreSQL?
Le DISTINCT clause dans PostgreSQL L'instruction DISTINCT est utilisée avec une instruction SELECT pour supprimer les lignes en double du jeu de résultats. Lorsqu'une colonne contient des valeurs répétées, SELECT DISTINCT ne renvoie que les valeurs uniques.ping Une seule ligne par groupe de doublons. Ceci est utile pour obtenir une liste d'entrées distinctes, comme des villes de clients uniques ou des catégories de produits, sans répétition.
DISTINCT évalue toutes les colonnes listées dans l'instruction SELECT pour déterminer si une ligne est unique. PostgreSQL L'instruction DISTINCT ON renvoie la première ligne correspondant à chaque valeur distincte d'une expression spécifiée. Vous pouvez combiner DISTINCT avec ORDER BY pour contrôler les lignes affichées et avec LIMIT pour limiter le nombre de résultats.
PostgreSQL Sélectionnez l'instruction dans SQL Shell
Étape 1) Nous avons une table « tutorials » avec deux colonnes : « id » et « tutorial_name ». Interrogeons-la. Utilisez la requête suivante pour afficher les données de la table :
SELECT id,tutorial_name FROM tutorials;
NOTE: Utilisez la commande \c pour vous connecter à la base de données contenant la table que vous souhaitez interroger. Dans notre cas, nous sommes connectés à la base de données guru99.
Étape 2) Pour afficher toutes les colonnes d'un tableau, utilisez le caractère générique astérisque (*). Ce dernier vérifie toutes les possibilités et renvoie ainsi toutes les colonnes.
SELECT * FROM tutorials;
Il affiche tous les enregistrements de la table des tutoriels.
Étape 3) Vous pouvez utiliser la clause ORDER pour trier les données d'un tableau en fonction d'une colonne particulière. La clause ORDER organise les données dans l'ordre de A à Z.
SELECT * FROM tutorials ORDER BY id;
Vous pouvez trier de Z à A en utilisant « DESC » après l'instruction « ORDER BY ».
SELECT * FROM tutorials ORDER BY id DESC;
Étape 4) La fonction SELECT DISTINCT dans PostgreSQL La clause peut être utilisée pour supprimer les lignes en double du résultat. Il conserve une ligne pour chaque groupe de doublons.
Syntax: SELECT DISTINCT column_1 FROM table_name;
Examinons Postgres pour sélectionner les valeurs d'identifiant distinctes de notre table à l'aide de requêtes distinctes. PostgreSQL:
SELECT DISTINCT(id) FROM tutorials;
Étape 5) Vous pouvez utiliser le PostgreSQL Clause LIMIT pour limiter le nombre d'enregistrements renvoyés par la requête SELECT.
SELECT * FROM tutorials LIMIT 4;
PostgreSQL Sélectionnez l'instruction dans pgAdmin
Étape 1) Dans l'arborescence des objets :
- Faites un clic droit sur le tableau.
- Sélectionner des scripts.
- Cliquez sur SÉLECTIONNER LE SCRIPT.
Étape 2) Dans le panneau de droite :
- Modifiez la requête SELECT si nécessaire.
- Cliquez sur l'icône Éclair.
- Observez le résultat.
DISTINCT sur plusieurs colonnes
La clause SELECT DISTINCT peut également s'appliquer à plusieurs colonnes. Lorsque vous indiquez plusieurs colonnes après DISTINCT, PostgreSQL traite la combinaison de ces colonnes comme une unité et supprime les lignes où cette combinaison est dupliquée.
Syntax: SELECT DISTINCT column_1, column_2 FROM table_name;
Par exemple, pour renvoyer les combinaisons uniques de tutorial_name et id de la table tutorials :
SELECT DISTINCT tutorial_name, id FROM tutorials;
Dans ce cas, une ligne est supprimée uniquement si le nom du tutoriel (tutorial_name) et l'identifiant (id) correspondent tous deux à une autre ligne. Si deux lignes partagent le même nom de tutoriel (tutorial_name) mais des identifiants (id) différents, elles sont conservées, car la combinaison reste unique. Il est important de retenir ce comportement : DISTINCT ne supprime pas les doublons d'une seule colonne lorsqu'il y en a plusieurs ; il supprime les doublons de l'ensemble des colonnes sélectionnées.
DISTINCT vs GROUP BY dans PostgreSQL
DISTINCT et GROUP BY permettent tous deux de supprimer les valeurs en double, mais ils servent des objectifs différents :
- DISTINCT Elle renvoie simplement les lignes uniques du résultat et est idéale lorsque vous n'avez besoin que d'une liste sans doublons.
- PAR GROUPE regroupe les lignes qui partagent une valeur afin que vous puissiez appliquer des fonctions d'agrégation telles que COUNT, SUM ou AVG à chaque groupe.
Par exemple, les deux requêtes ci-dessous renvoient toutes deux les valeurs d'identifiant uniques :
SELECT DISTINCT id FROM tutorials; SELECT id FROM tutorials GROUP BY id;
Utilisez DISTINCT pour une simple liste de valeurs uniques et GROUP BY lorsque vous devez également effectuer un calcul par groupe, par exemple pour compter le nombre de tutoriels partageant chaque identifiant. Pour les requêtes simples, le planificateur offre souvent des performances similaires avec les deux méthodes, mais GROUP BY est indispensable dès qu'une agrégation est nécessaire.
Aide-mémoire
SELECT [column names] FROM [table_name] [clause]
Voici les différents paramètres :
- Noms des colonnes : Nom des colonnes dont vous souhaitez récupérer la valeur.
- DE: La clause FROM définit une ou plusieurs tables sources pour la requête SELECT.
- nom de la table: Le nom d'une table existante que vous souhaitez interroger.
Diverses clauses sont :
| Commandes | Description |
|---|---|
| * | Récupère les enregistrements pour toutes les lignes du tableau. |
| DISTINCT | DISTINCTE dans PostgreSQL vous aide à supprimer les doublons des résultats. |
| COMMANDÉ PAR | Trie les lignes en fonction d'une colonne. L'ordre de tri par défaut est croissant. Utilisez le mot-clé DESC pour trier par ordre décroissant. |
| LIMIT | LIMITE dans PostgreSQL limite le nombre d'enregistrements renvoyés par la requête. |








