Heim > Datenbank > MySQL-Tutorial > Wie wähle ich eindeutige Werte aus bestimmten Spalten in SQL aus?

Wie wähle ich eindeutige Werte aus bestimmten Spalten in SQL aus?

DDD
Freigeben: 2024-12-30 06:35:10
Original
311 Leute haben es durchsucht

How to Select Distinct Values from Specific Columns in SQL?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

So funktioniert diese erweiterte Abfrage:

  1. Die Funktion ROW_NUMBER() weist zu ein eindeutiger Zeilenindex, „rn“, innerhalb jeder Partition von E-Mails in absteigender Reihenfolge der ID.
  2. Die Unterabfrage generiert eine Zwischentabelle mit alle Spalten aus der ursprünglichen Abfrage, zusammen mit dem Zeilenindex „rn“.
  3. Die äußere Abfrage filtert dann die Ergebnisse der Unterabfrage, um nur Zeilen einzuschließen, bei denen „rn“ gleich 1 ist, und gibt effektiv die neuesten Zeilen zurück für jede eindeutige E-Mail.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage