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

jak uzyskać różne rekordy na podstawie maksymalnej daty?

Użyj funkcji ROW_NUMBER() oraz klauzula PARTITION BY. Coś takiego:

SELECT Id, Name, Date FROM (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY Id ORDER BY Date desc) AS ROWNUM 
    FROM [MyTable]
) x 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. Znajdowanie zduplikowanych wierszy w SQL Server

  2. Podsumuj listę jako ciąg oddzielony przecinkami

  3. Implementacja wspólnego wskaźnika wydajności MS SQL Server

  4. Wstaw .NET SQL wolno w porównaniu z JDBC? (JDBC 4x szybciej)

  5. Sprawdź, czy tabela istnieje w SQL Server