SQL分类累计求和

有如下一张表T ,记录了2021年各个部门每个月的订单数
SQL分类累计求和_第1张图片
现要求得每个部门到哪个月份的时候累计订单量突破20
最终结果应为
SQL分类累计求和_第2张图片


Solution:

--建表
if object_id('T','U') is not null drop table T
create table T (
    ID INT IDENTITY,
    Department varchar(50),
    YM varchar(50),
    Orders int
)
insert into T (Department,YM,Orders)
values
('A','202101',10),
('A','202102',5),
('A','202103',8),
('B','202101',15),
('B','202102',6),
('B','202103',20),
('B','202104',2)
--查询
SELECT Department,MIN(YM) as YM
FROM (select ID,Department,YM,Orders
     ,sum(Orders) over(partition by Department order by YM) as AccOrders
from T
GROUP BY ID,Department,YM,Orders) a
where AccOrders > 20
GROUP BY Department

你可能感兴趣的:(数据库,sql,数据库)