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

най-новата (макс.) дата за всеки идентификатор

можете да изберете максимална дата за всяка група идентификатори като

SELECT a,
    b,
    max(b) OVER (PARTITION BY a) AS c
FROM myTable
ORDER BY a,b

РЕДАКТИРАНЕ: едно от възможните решения за втората (редактирана) част на въпроса е

WITH cte AS (
    SELECT a,
        b,
        max(b) OVER (PARTITION BY a) AS c,
        d
    FROM myTable
)
SELECT t1.a,
    t1.b,
    t1.c,
    t1.d,
    t2.d AS e
FROM cte t1
JOIN cte t2 ON t1.a=t2.a AND t1.c=t2.b


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 - Добавяне към низ в определена позиция в колоната с имена

  2. SQL Server Management Studio - Добавянето/преместването на колони изисква премахване и повторно създаване?

  3. DateTime2 срещу DateTime в SQL Server

  4. Базирани на функции индекси в SQL Server

  5. nolock на временна таблица в SQL Server 2008