Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

como obter os registros distintos com base na data máxima?


Use a função ROW_NUMBER() e cláusula PARTITION BY. Algo assim:
SELECT Id, Name, Date FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY Id ORDER BY Date desc) AS ROWNUM 
    FROM [MyTable]
) x WHERE ROWNUM = 1