2014-10-13 2 views
0

У меня есть таблица в SQL Server:Выберите максимальное значение в группе, и это тождество ключа

Id Type  Date 
-------------------------------------- 
1  80  2014-00-00 00:00:00.000 
2  80  2013-00-00 00:00:00.000 
3  81  2012-00-00 00:00:00.000 
4  81  2011-00-00 00:00:00.000 
5  81  2010-00-00 00:00:00.000 

Я хочу, чтобы получить записи с максимальной датой в остальном типе, как следующие, как сделать запрос?

Большое спасибо

Id Type  Date 
-------------------------------------- 
1  80  2014-00-00 00:00:00.000 
3  81  2012-00-00 00:00:00.000 

ответ

0
;WITH CTE AS 
(
    SELECT *, 
      RN = ROW_NUMBER() OVER(PARTITION BY [Type] ORDER BY [Date] DESC) 
    FROM YourTable 
) 
SELECT ID, 
     [Type], 
     [Date] 
FROM CTE 
WHERE RN = 1; 

Here is a sqlfiddle с демонстрационной этого.

И результаты:

╔════╦══════╦═════════════════════════╗ 
║ Id ║ Type ║   Date   ║ 
╠════╬══════╬═════════════════════════╣ 
║ 1 ║ 80 ║ 2014-00-00 00:00:00.000 ║ 
║ 3 ║ 81 ║ 2012-00-00 00:00:00.000 ║ 
╚════╩══════╩═════════════════════════╝ 
+0

Это работа. Спасибо – JohnsonChow

Смежные вопросы