Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL - Изберете най-новия запис, когато има дубликат

Има няколко начина да го направите, един от начините е да използвате RED_NUMBER като това:

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

Това ще върне реда за всеки отделен идентификатор стойност, която има най-новата дата.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неуспешно влизане за потребител „DOMAIN\MACHINENAME$“

  2. Скрипт за унищожаване на всички връзки към база данни (Повече от RESTRICTED_USER ROLLBACK)

  3. Връщане на всички неизчислени колони от таблица в SQL Server

  4. Изпълнете съхранена процедура в динамична временна таблица

  5. Най-добрият подход за премахване на времева част от дата и час в SQL Server