DISTINCT-Auswahl für bestimmte Spalten
Während das Schlüsselwort DISTINCT normalerweise ganze Zeilen mit etwaigen Duplikaten herausfiltert, kann es Fälle geben, in denen Sie eine Unterscheidung benötigen Werte nur für bestimmte Spalten. Lassen Sie uns untersuchen, wie dies im Kontext einer Abfrage erreicht wird, die Daten aus einer Produkttabelle abruft.
Die ursprüngliche Abfrage ruft alle Spalten aus der Produkttabelle ab:
SELECT ID, Email, ProductName, ProductModel FROM Products
Das Ziel besteht darin Ändern Sie die Abfrage so, dass eindeutige E-Mail-Adressen zurückgegeben werden, sodass Duplikate in anderen Spalten zulässig sind. Um dies zu erreichen, können wir die Funktion ROW_NUMBER() zusammen mit einer Fensterpartition per E-Mail verwenden.
SELECT * FROM ( SELECT ID, Email, ProductName, ProductModel, ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn FROM Products ) a WHERE rn = 1
So funktioniert diese erweiterte Abfrage:
Als Ergebnis ruft diese modifizierte Abfrage alle Spalten aus der Produkttabelle ab und stellt so sicher, dass keine doppelten E-Mail-Adressen vorhanden sind.
Das obige ist der detaillierte Inhalt vonWie wähle ich eindeutige Werte aus bestimmten Spalten in SQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!