Maison >base de données >tutoriel mysql >Comment sélectionner des valeurs distinctes dans des colonnes spécifiques dans SQL ?
Sélection DISTINCT pour des colonnes spécifiques
Bien que le mot clé DISTINCT filtre généralement des lignes entières avec des doublons, il peut y avoir des cas où vous avez besoin de valeurs uniquement pour des colonnes spécifiques. Voyons comment y parvenir dans le contexte d'une requête qui récupère les données d'une table Products.
La requête d'origine récupère toutes les colonnes de la table Products :
SELECT ID, Email, ProductName, ProductModel FROM Products
L'objectif est de modifiez la requête pour renvoyer des adresses e-mail uniques, autorisant les doublons dans d'autres colonnes. Pour y parvenir, nous pouvons utiliser la fonction ROW_NUMBER() à côté d'une partition de fenêtre par e-mail.
SELECT * FROM ( SELECT ID, Email, ProductName, ProductModel, ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn FROM Products ) a WHERE rn = 1
Voici comment fonctionne cette requête améliorée :
En conséquence, cette requête modifiée récupère toutes les colonnes de la table Produits, garantissant qu'aucune adresse e-mail en double n'est présent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!