我在Sql Server中有一个名为MyTable的表,如下所示:
Name | Value | Date
A V1 01.01.2012
A V2 02.02.2012
B V1 02.02.2012
B V2 01.01.2012
现在我想通过Name查询表和组结果。但是,对于每个名称,我需要采用最新值。示例查询结果:
Name | Value | Date
A V2 02.02.2012
B V1 02.02.2012
实现这一目标的最简单的查询是什么?
答案 0 :(得分:2)
尝试类似
的内容;WITH abc AS
(
SELECT *,
ROW_NUMBER() OVER (PARTITION BY Name ORDER BY [date] DESC) AS rn
FROM tmp
)
SELECT *
FROM abc
WHERE rn = 1
希望这会对你有帮助!
由于 苏雷什
答案 1 :(得分:2)
查询可能在任何数据库上运行的内容:
SELECT a.*
FROM MyTable a
LEFT JOIN MyTable b
ON b.Name = a.Name
AND b.Date > a.Date
WHERE b.Value is null