繁体   English   中英

如何在SQL Server中获取特定行范围内特定列的总和?

[英]How to get sum of specific column at specific row range in SQL Server?

这是我的桌子:

Id       Name      Price      Session
----------------------------------------
1        abcd      1000       07.00 AM
1        abcd      1000       07.00 AM
5        mnop      NULL       12.00 AM
5        mnop      NULL       12.00 AM
5        mnop      1000       12.00 AM

我希望这个结果:

Id       Name      Price      Session
--------------------------------------
1        abcd      2000       07.00 AM
5        mnop      1000       12.00 AM

如何汇总特定行范围内的列Price

在查询中包括group by子句。 在group by子句中也列出了所有未使用聚合函数的斜列。

Select id ,name ,session ,sum (price)
From table
Group by id, name, session

没有group by子句的其他方法是SUM() .. over

SELECT DISTINCT
   Id, Name,
   SUM(Price) OVER(PARTITION BY ID, Name, Session) [Price],
   [Session]
FROM <table>;

结果:

Id       Name      Price      Session
--------------------------------------
1        abcd      2000       07.00 AM
5        mnop      1000       12.00 AM

我认为您可以尝试使用价格的总和来尝试此操作,并以GROUP BY完成。

GROUP BY的Microsoft文档: https : //docs.microsoft.com/zh-cn/sql/t-sql/queries/select-group-by-transact-sql

还有一个简短的例子:

SELECT Id, Name, Session, SUM(Price) AS Price
FROM Table
GROUP BY Id, Name, Session

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM