sql >> Base de Datos >  >> RDS >> Sqlserver

Ayuda rápida usando RANK sobre múltiples variables

número_fila debería ser suficiente para sus necesidades.

Nota:Supongo que su columna de fecha es un tipo de datos de fecha o fecha y hora verdaderos y no una cadena en el formulario que ha mostrado. Si esa suposición es incorrecta, se necesitaría alguna manipulación de cadena adicional para convertir la fecha en un formato ordenable.

;with cteRowNumber as (
    select Date, ProductID, Year, Price, 
           row_number() over (partition by ProductID, Year order by Date desc) as RowNum
        from YourTable
)
select Date, ProductID, Year, Price
    from cteRowNumber
    where RowNum = 1