我有以下的數據集,我試圖以使用一排秩邏輯得到輸出提到如下:分區數據
declare @data table
(
identifier int,
value float,
dateValue datetime
)
insert into @data values(1 , 100 ,'2016-08-09 11:00:00.000')
insert into @data values(1 , 150 ,'2016-08-09 11:00:00.000')
insert into @data values(1 , 200 ,'2014-08-09 11:00:00.000')
insert into @data values(2 , 400 ,'2016-08-09 11:00:00.000')
insert into @data values(2 , 300 ,'2012-08-09 11:00:00.000')
輸出我期待是:回暖值列的第一個值基於給定ID的最新日期和給定ID的聚合。
id Value AggValue Date
1 100 450 2016-08-09 11:00:00.000
2 400 700 2016-08-09 11:00:00.000
我嘗試使用下面的查詢得到類似的產量,但我無法弄清楚如何計算Aggvalue在同一個查詢
SELECT identifier,value,dateValue FROM
(SELECT identifier,value,dateValue,
ROW_NUMBER() OVER (PARTITION BY t.identifier ORDER BY t.dateValue DESC) AS [Rank]
FROM @data t) AS [sub]
where [sub].[Rank] = 1
術語「分區」是通常用於描述一個單一的表中的不同的「子表」的行的物理存儲。它不用於描述窗口函數中'partition by'條件的用法。 –
我想你想要這個。 SELECT標識符,值,dateValue從 (SELECT標識符,值,日期值,總和(值)作爲AggValue FROM @data t)AS [sub] group標識符 –