Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL - Neusten Datensatz auswählen, wenn ein Duplikat vorhanden ist

Dafür gibt es mehrere Möglichkeiten, eine Möglichkeit ist die Verwendung von ROW_NUMBER so:

SELECT id, type, date
FROM 
(
    SELECT tb1.id, tb1.type, tb1.Date, 
        ROW_NUMBER() OVER (PARTITION BY tb1.id ORDER BY tb1.Date DESC) AS RowNo
    FROM Table tb1
    WHERE tb1.type IN ('A','B')
) x
WHERE x.RowNo = 1

Dadurch wird die Zeile für jede eindeutige ID zurückgegeben Wert mit dem neuesten Datum.