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

Eliminieren doppelter Werte basierend auf nur einer Spalte der Tabelle

Hier setzt die Fensterfunktion row_number() an ist praktisch:

SELECT s.siteName, s.siteIP, h.date
FROM sites s INNER JOIN
     (select h.*, row_number() over (partition by siteName order by date desc) as seqnum
      from history h
     ) h
    ON s.siteName = h.siteName and seqnum = 1
ORDER BY s.siteName, h.date