sql - 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
这给了我六行,但我需要的是之前所有六行的总和。任何帮助将不胜感激
麦克风
解决方案
您可以使用:
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
推荐阅读
- android - 如何在 Android Studio 中创建允许跳转到某一行的链接
- python - 解析节点属性下的xml
- python - 将输出打印为表格
- javascript - ReactJS 中的多选和多选复选框
- laravel - Google Drive API V3 - 需要登录 401 错误
- python - 请需要解决这个问题:ModuleNotFoundError: No module named 'mysql'
- python - 在 Selenium Python 中编写正确的 Xpath
- javascript - 在 React 的 if 语句中修改数组内即将到来的布尔值
- javascript - 使用未定义的javascript更改画布的颜色
- python - node-pre-gyp install--fallback-to-build --library=static_library