SQL Server LAST就像功能一样

时间:2014-03-28 14:34:46

标签: sql sql-server

我在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

实现这一目标的最简单的查询是什么?

2 个答案:

答案 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