Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Szybka pomoc przy użyciu RANK nad wieloma zmiennymi

row_number powinno wystarczyć dla Twoich potrzeb.

Uwaga:Zakładam, że Twoja kolumna Date jest prawdziwym typem danych Date lub DateTime, a nie ciągiem w wyświetlonym formularzu. Jeśli to założenie jest błędne, konieczna byłaby dodatkowa manipulacja ciągiem znaków, aby przekonwertować datę na format możliwy do sortowania.

;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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykonać pakiet SSIS z platformy .NET?

  2. Jak mogę wyświetlić usunięte rekordy z tabeli serwera sql?

  3. Jak połączyć Cakephp 1.3 z MS SQLServer 2008?

  4. Jak rozwiązać loginy systemu Azure Windows nie są obsługiwane w tej wersji programu SQL Server?

  5. Znajdź rekordy sql zawierające podobne ciągi