SQL Server总共需要前面6行



我使用的是SQL Server,我需要获得表前6行的总和,并将结果放在它自己的列中。

我可以通过以下查询返回第6排:

SELECT id
,FileSize
,LAG(FileSize,6) OVER (ORDER BY DAY(CompleteTime)) previous
FROM Jobs_analytics 
group by id, CompleteTime, Jobs_analytics.FileSize

这给了我后面的六行,但我需要的是前面六行的总和。如有任何帮助,将不胜感激

Mike

您可以使用:

SELECT ja.id, ja.FileSize, CompleteTime, 
SUM(FileSize) OVER (ORDER CompleteTime ROWS BETWEEN 5 PRECEDING AND CURRENT ROW) as previous
FROM Jobs_analytics ja;

我不明白为什么GROUP BY是必要的。没有聚合函数。

请注意,这需要6天,包括当天。如果您想要前六行:

SELECT ja.id, ja.FileSize, DATE, 
SUM(FileSize) OVER (ORDER BY CompleteTime ja.id ROWS BETWEEN 6 PRECEDING AND 1 PRECEDING) as previous
FROM Jobs_analytics ja

最新更新