/ / SQL Server: Вибір рядків із останньою датою для кожної частини - sql-сервер, дата, порядок, окрема

SQL Server: вибір рядків із найостаннішою датою для кожної частини - sql-server, date, order, distinct

Я просто вивчаю SQL, отже, я борюся трохи, щоб отримати результат, який я хотів би.

Припустимо, у мене є таблиця X, показана нижче:

-------Date ------- Part ------- Value

01-01-2005           A           200

01-01-2006           A           100

01-01-2007           A           300

02-02-2010           B           450

02-02-2011           B           320

і від X я "хотів би отримати ці:

-------Date ------- Part ------- Value

01-01-2007           A           300

02-02-2011           B           320

В основному, я хочу зробити для кожної окремої частини лише один запис - той, який має останню дату. Стовпчик значення повинен залишатися в результаті!

Як це зробити (якщо вважати, що це можливо)? Я буду вдячний за будь-яку допомогу.

Відповіді:

2 для відповіді № 1
;WITH LatestRecords
AS
(
SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY PART ORDER BY [Date] DESC)
FROM TABLEX
)
SELECT * FROM LatestRecords
WHERE rn = 1