我有一张像
这样的表格 TIMESTAMP PARAMETER1 PARAMETER2 VALUE
--------------------------------------
111 2 3 12.00
222 2 3 13.00
333 2 3 13.00
111 3 4 15.00
222 3 4 19.00
010 3 5 20.00
在SQL Server中,我需要构建一个返回多行的查询,每个PARAMETER1和PARAMETER2组合一行,并且仅针对相应组合显示的最新时间戳。
对于上面的示例,对于组合{PARAMETER1,PARAMETER2} = {2,3},最新时间戳为333,{3,4}为222,而{3,5}为010,所以我和#39;想写一个返回的查询:
TIMESTAMP PARAMETER1 PARAMETER2 VALUE
--------------------------------------
333 2 3 13.00
222 3 4 19.00
010 3 5 20.00
答案 0 :(得分:2)
如果不是成千上万次,这已被问及并回答了数百次。但是输入答案比找到副本更容易。
select TIMESTAMP
, PARAMETER1
, PARAMETER2
, VALUE
from
(
select TIMESTAMP
, PARAMETER1
, PARAMETER2
, VALUE
, RowNum = ROW_NUMBER() over (partition by PARAMETER1, PARAMETER2 order by TIMESTAMP desc)
)x
where x.RowNum = 1