Name Region sku
A医院 N 10%
B医院 N 5%
C医院 N 15%
结果:
Name Region SKU 累加列
A医院 N 10% 10%
B医院 N 5% 15%
C医院 N 15% 30%
意思就是需要查询结果多加一列,列的值是每行的SKU数值累加起来的。
4 个解决方案
#1
selete * from table;
不用谢
不用谢
#2
with tb as
(
select *,row_number()over(order by getdate())rn from table1 --table1你的表
)
select a.*,b.累加列from tb a cross apply (select Name,SUM(SKU)as [累加列] from tb where rn<=a.rn group by Name) b where a.Name=b.Name
#3
select * ,(select sum(SKU) from tableName where id<= a.id) as 累加列 from tableName a
当然,那个sum()时面的东西你自己处理一下了,因为你的有个%号,另外tableName的排列顺序也最好处理一下了,我就不写了,那个太简了
当然,那个sum()时面的东西你自己处理一下了,因为你的有个%号,另外tableName的排列顺序也最好处理一下了,我就不写了,那个太简了
#4
--需要按不同地区分组累加么?需要的话用上partition ,不需要的话不用
with tt as (
select *,ROW_NUMBER()over(partition by Region order by Name) rn
from t
)
select *,(select SUM(sku) from tt t2 where t2.Region=tt.Region and t2.rn<=tt.rn ) 累加列--sku如果是字符串,需要转型
from tt
#1
selete * from table;
不用谢
不用谢
#2
with tb as
(
select *,row_number()over(order by getdate())rn from table1 --table1你的表
)
select a.*,b.累加列from tb a cross apply (select Name,SUM(SKU)as [累加列] from tb where rn<=a.rn group by Name) b where a.Name=b.Name
#3
select * ,(select sum(SKU) from tableName where id<= a.id) as 累加列 from tableName a
当然,那个sum()时面的东西你自己处理一下了,因为你的有个%号,另外tableName的排列顺序也最好处理一下了,我就不写了,那个太简了
当然,那个sum()时面的东西你自己处理一下了,因为你的有个%号,另外tableName的排列顺序也最好处理一下了,我就不写了,那个太简了
#4
--需要按不同地区分组累加么?需要的话用上partition ,不需要的话不用
with tt as (
select *,ROW_NUMBER()over(partition by Region order by Name) rn
from t
)
select *,(select SUM(sku) from tt t2 where t2.Region=tt.Region and t2.rn<=tt.rn ) 累加列--sku如果是字符串,需要转型
from tt