-1

我有一张像

 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,所以我想编写一个返回的查询:

 TIMESTAMP PARAMETER1 PARAMETER2 VALUE
 --------------------------------------
 333       2          3          13.00
 222       3          4          19.00
 010       3          5          20.00
4

1 回答 1

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
于 2018-05-18T14:41:05.110 回答