sql server需要前6行的总和

uxh89sit  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(347)

我使用的是SQLServer,我需要得到表中前6行的总和,并将结果放在它自己的列中。
我可以通过以下查询返回第6行:

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

这给了我后面的六排,但我需要的是前面六排的总和。任何帮助都将不胜感激
迈克

zsohkypk

zsohkypk1#

您可以使用:

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

相关问题