数据库针对sqlserver,其他数据库可能会有点变化
1.sqlserver 逐行累加
CREATE TABLE [dbo].[User](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](20) NULL,
[Score] [int] NULL)
-- 逐行累加
SELECT t2.A, SUM(t1.A)
FROM (SELECT Score a, ROW_NUMBER() OVER(ORDER BY Id) RK from [User]) t1,
(SELECT Score a, ROW_NUMBER() OVER(ORDER BY Id) RK from [User]) t2
WHERE t1.rk <= t2.rk
group by t2.a
ORDER BY T2.A
还有另一种,按天累计
--按天累加
select 年份,月份,销售日期,客户,产品,
(select sum(金额) as 按年月日累计金额 from tb where 年份=t.年份 and 月份=t.月份
and 客户=t.客户 and 产品=t.产品
and 销售日期<=t.销售日期) as 按年月日累计金额
from tb t
2.pivot函数,分月份相加(也有列转行的功能)
create table #r01
(年份 varchar(4),
月份 varchar(2),
人数 int
)
--计算每个月份的人数
select * from #r01 as x pivot(sum(积分人数) for 月份 in ([01月],[02月],[03月],[04月],[05月],[06月],[07月],[08月],[09月],[10月],[11月],[12月])) as y
持续补充。。。。。。
来自&参考:1.https://blog.youkuaiyun.com/chenhisen/article/details/50779079
https://blog.youkuaiyun.com/hebbers/article/details/72626872