получить строку, которая имеет самую высокую дату для каждого идентификатора SQL Server 2005 - PullRequest
1 голос
/ 20 мая 2011

У меня есть таблица

PKID : int - primary key
Date : datetime
ID_2 : int
lots of other columns..
...
...

Как получить строку с наибольшей датой для каждого уникального ID_2 ?

Ответы [ 3 ]

3 голосов
/ 20 мая 2011
;WITH cte AS
(
SELECT PKID, 
       Date, 
       ID_2, 
       ROW_NUMBER() OVER (PARTITION BY ID_2 ORDER BY Date DESC) AS RN
FROM your_table
)
SELECT PKID, 
       Date, 
       ID_2
FROM cte 
WHERE RN=1
2 голосов
/ 20 мая 2011
;with t as
(
    select 
        ROW_NUMBER() OVER (PARTITION BY ID_2 order by date desc) rn,tableName.*
    from
        tableName
)
select * from t where rn=1

Я ленивый и привык *.Вы не должны

0 голосов
/ 20 мая 2011

Просто MAX() и GROUP;

SELECT 
  ID_2,
  MAX([Date]) AS TheDate
FROM tbl 
  GROUP BY ID_2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...