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

SQL — Wybierz najnowszy rekord, gdy istnieje duplikat

Można to zrobić na kilka sposobów, jednym z nich jest użycie ROW_NUMBER tak:

SELECT id, type, date
FROM 
(
    SELECT tb1.id, tb1.type, tb1.Date, 
        ROW_NUMBER() OVER (PARTITION BY tb1.id ORDER BY tb1.Date DESC) AS RowNo
    FROM Table tb1
    WHERE tb1.type IN ('A','B')
) x
WHERE x.RowNo = 1

Spowoduje to zwrócenie wiersza dla każdego odrębnego identyfikatora wartość, która ma najnowszą datę.




  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 pobrać rekordy z ostatnich 30 minut w MS SQL?

  2. SQL:znajdowanie średniego wyniku

  3. Dostawca nazwanych potoków Błąd dostawcy 40 nie może otworzyć połączenia z błędem 2 programu SQL Server

  4. Jak zadeklarować tablicę wewnątrz procedury składowanej MS SQL Server?

  5. TABLESAMPLE zwraca nieprawidłową liczbę wierszy?