Sql 为特定期间的特定名称汇总值?
我的目标是在列中总结特定名称和特定时间段的值。我有一列名称[name],一列整数值,我想把[values]和另一列整数值[Day]相加。我想对每天按名称分组的值进行汇总 例如,如果有一个名字Chris在第1天的值为4,另一个条目Chris在第3天的值为2,我想显示Chris在第14天和第2天的总和 我已经得到了一些工作代码,如下所示:此代码仅对从第1天到第X天的每个值进行求和。我无法找到一个能够对特定时间段的值进行求和的代码。假设在第27天有一个条目Ralph 我的原始代码对Ralph的每个值进行求和,直到第27天,但现在我想对特定时间范围的值进行求和,例如,我想对过去20天中列中每个名称的每个值进行求和。这怎么可能Sql 为特定期间的特定名称汇总值?,sql,sql-server,sum,Sql,Sql Server,Sum,我的目标是在列中总结特定名称和特定时间段的值。我有一列名称[name],一列整数值,我想把[values]和另一列整数值[Day]相加。我想对每天按名称分组的值进行汇总 例如,如果有一个名字Chris在第1天的值为4,另一个条目Chris在第3天的值为2,我想显示Chris在第14天和第2天的总和 我已经得到了一些工作代码,如下所示:此代码仅对从第1天到第X天的每个值进行求和。我无法找到一个能够对特定时间段的值进行求和的代码。假设在第27天有一个条目Ralph 我的原始代码对Ralph的每个值进
select name, day, value, name2, value2,
sum(value) over (partition by name order by day) SumValue,
sum(value2) over (partition by name2 order by day) SumValue2
from (select *, row_number() over (order by day) rn from tablename) as t
order by rn
注意:行的顺序需要保持不变。尝试下面的脚本-
WITH CTE AS
(
SELECT Name,Day,SUM(Value) S_Val
FROM your_table
GROUP BY Name,Day
)
SELECT A.Name,A.Day,
(
SELECT SUM(B.S_Val)
FROM CTE B
WHERE B.Name = A.Name
AND B.Day <= A.Day
) AS Running_Sum
FROM CTE A
ORDER BY A.Name,A.Day
试试下面的脚本-
WITH CTE AS
(
SELECT Name,Day,SUM(Value) S_Val
FROM your_table
GROUP BY Name,Day
)
SELECT A.Name,A.Day,
(
SELECT SUM(B.S_Val)
FROM CTE B
WHERE B.Name = A.Name
AND B.Day <= A.Day
) AS Running_Sum
FROM CTE A
ORDER BY A.Name,A.Day
简单的where day=27或where day介于12和15之间的订单不是由do it完成吗?示例数据和期望的结果将非常有用。您完全正确的@OlivierJacot Descombes!就这么简单!非常感谢。简单的where day=27或where day介于12和15之间的订单不是由do it完成吗?示例数据和期望的结果将非常有用。您完全正确的@OlivierJacot Descombes!就这么简单!非常感谢。