Heim > Datenbank > MySQL-Tutorial > Wie kann ich aus einer mehrspaltigen SQL-Abfrage nur eindeutige E-Mail-Adressen abrufen?

Wie kann ich aus einer mehrspaltigen SQL-Abfrage nur eindeutige E-Mail-Adressen abrufen?

Barbara Streisand
Freigeben: 2024-12-28 11:37:20
Original
803 Leute haben es durchsucht

How Can I Retrieve Only Unique Email Addresses from a Multi-Column SQL Query?

DISTINCT für eine bestimmte Spalte

Bei einer Abfrage, die mehrere Spalten wie ID, E-Mail, Produktname und Produktmodell aus den Produkten abruft Tabelle, wie kann sie so geändert werden, dass nur eindeutige E-Mail-Werte angezeigt werden?

Um dieses Problem zu beheben, bieten SQL Server 2005 und spätere Versionen eine Lösung:

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

Diese Abfrage verwendet die Funktion ROW_NUMBER(), um jeder Zeile innerhalb jeder E-Mail-Partition eine Zeilennummer zuzuweisen, sortiert in absteigender Reihenfolge der ID. Die rn-Spalte gibt dann an, welche Zeile in das Endergebnis einbezogen werden soll, da nur diejenigen ausgewählt werden, deren rn gleich 1 ist.

Um die Abfrage weiter zu verfeinern, kann eine WHERE-Klausel hinzugefügt werden, um die Zeilen basierend zu filtern nach bestimmten Kriterien. Um beispielsweise nur Zeilen mit einem bestimmten ProductModel einzuschließen, deren ProductName eine bestimmte Teilzeichenfolge enthält:

SELECT *
FROM (
    SELECT  ID, 
            Email, 
            ProductName, 
            ProductModel,
            ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
        FROM Products
    WHERE ProductModel = 2
    AND ProductName LIKE 'CYBER%'
) a
WHERE rn = 1
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich aus einer mehrspaltigen SQL-Abfrage nur eindeutige E-Mail-Adressen abrufen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage