sum() over()开窗函数
2022-04-12 本文已影响0人
codeduck1
-- 开窗函数 SUM() OVER()
-- 创建表demo
create table demo(
id int, -- 月份
moneyData float -- 金额
)
-- 插入数据
insert into table demo
SELECT 1,100 UNION ALL
SELECT 2,200 UNION ALL
SELECT 3,300 UNION ALL
SELECT 4,400 UNION ALL
SELECT 5,500 UNION ALL
SELECT 6,600 UNION ALL
SELECT 7,600
-- 自连接统计 月份累计金额
select a.id, sum(b.moneyData)
from demo a
join demo b
on a.id > b.id
group by a.id
-- 开窗函数
select
id
,moneyData
,sum(moneyData) over() as '总销售额'
,sum(moneyData) over(partition by id) as '月销售额'
,sum(moneyData) over(order by id asc) as '当月+当月前销售额'
from demo
;