首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当只选择部分数据时,如何计算正在运行的SQL语句总数?

当只选择部分数据时,如何计算正在运行的SQL语句总数?
EN

Stack Overflow用户
提问于 2016-10-13 02:58:14
回答 2查看 56关注 0票数 1

如何选择ID 6-9并在SQL语句中计算运行合计?

这将在图片中显示相同的运行总数,而不是从ID 6开始:

EN

回答 2

Stack Overflow用户

发布于 2016-10-13 03:06:33

如果SQL Server 2012+,则可以使用窗口函数

代码语言:javascript
运行
复制
Declare @YourTable table (ID int,Amount int)
Insert Into @YourTable values (1,80),(2,11),(3,123),(4,47),(5,8),(6,500),(7,49),(8,27),(9,34),(10,56),(11,82),(12,17)

-- If 2012+  
Select *
      ,RunningTotal = sum(Amount) over (Order By ID)
 From @YourTable
 Where ID between 6 and 9

返回

代码语言:javascript
运行
复制
ID  Amount  RunningTotal
6   500     500
7   49      549
8   27      576
9   34      610

如果低于2012年

代码语言:javascript
运行
复制
Select A.ID
      ,A.Amount
      ,RunningTotal = sum(B.Amount)
 From @YourTable A
 Join @YourTable B on (B.ID <=A.ID and B.ID between 6 and 9)
 Where A.ID between 6 and 9
 Group By A.ID,A.Amount
 Order By A.ID
票数 1
EN

Stack Overflow用户

发布于 2016-10-13 03:17:42

您可以使用ROWS UNBOUNDED - window函数来计算运行总数

代码语言:javascript
运行
复制
Declare @YourTable table (ID int,Amount int)
Insert Into @YourTable values (1,80),(2,11),(3,123),(4,47),(5,8),(6,500),(7,49),(8,27),(9,34),(10,56),(11,82),(12,17)

select *, sum(amount) over (order by id rows unbounded preceding) as RunningTotal from @yourTable

您可以相应地应用条件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40006349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档