我只是在学习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
基本上我想做的是为每个不同的部分只获得一条记录 - 具有最新日期的记录。值列需要保留在结果中!
我该怎么做(假设有可能)?我很感激任何帮助。
答案 0 :(得分:2)
;WITH LatestRecords
AS
(
SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY PART ORDER BY [Date] DESC)
FROM TABLEX
)
SELECT * FROM LatestRecords
WHERE rn = 1