PostgreSQL DISTINCT
Le mot-clé `DISTINCT` de PostgreSQL est utilisé pour retourner des valeurs uniques à partir d'une colonne ou d'une combinaison de colonnes, en éliminant les entrées dupliquées. Elle est souvent utilisée en conjonction avec l'instruction `SELECT` pour s'assurer que le jeu de résultats ne contient que des enregistrements distincts.
Utilisation
Le mot-clé `DISTINCT` est utilisé lorsque vous devez supprimer les lignes dupliquées des résultats de votre requête. Il suit le mot-clé `SELECT` et s'applique aux colonnes spécifiées par la suite.
SELECT DISTINCT column1, column2, ...
FROM table_name;
Dans cette syntaxe, `DISTINCT` assure que la combinaison de `column1`, `column2`, etc., est unique dans le jeu de résultats.
Exemples
1. Valeurs uniques de base
SELECT DISTINCT country
FROM customers;
Cet exemple récupère une liste de pays uniques dans le tableau `customers`, en éliminant les doublons. Notez que les valeurs `NULL` sont traitées comme des entrées distinctes.
2. Combinaisons uniques
SELECT DISTINCT first_name, last_name
FROM employees;
Ici, la requête renvoie les combinaisons uniques de `first_name` et `last_name` du tableau `employees`.
3. Utilisation de DISTINCT avec ORDER BY
SELECT DISTINCT category
FROM products
ORDER BY category ASC;
Cet exemple récupère des catégories de produits distinctes et les classe par ordre alphabétique.
4. Utilisation avec DISTINCT ON
SELECT DISTINCT ON (column1) column1, column2
FROM table_name
ORDER BY column1, column2;
Dans PostgreSQL, `DISTINCT ON` vous permet de sélectionner des lignes distinctes basées sur des colonnes spécifiques, ce qui peut être utile pour des scénarios plus complexes.
Conseils et bonnes pratiques
- Utilisez-le à bon escient avec les grands ensembles de données. `DISTINCT` peut être gourmand en ressources en raison des opérations de tri et de comparaison qu'il implique, utilisez-le donc judicieusement pour éviter les problèmes de performance.
- Combinez avec `ORDER BY`. Associez `DISTINCT` à `ORDER BY` pour trier les résultats uniques si nécessaire.
- Limitez les colonnes dans la mesure du possible. Appliquez `DISTINCT` au plus petit nombre de colonnes pour réduire la complexité et le temps d'exécution.
- Vérifiez l'unicité nécessaire. Assurez-vous que l'utilisation de `DISTINCT` est vraiment nécessaire pour votre requête spécifique afin d'éviter toute surcharge inutile.