数据聚合之连续聚合

连续聚合是对数据按一定顺序(通常是时间顺序)进行聚合。
有三种连续聚合的情况:
累计聚合(Cumulative Aggregate )
滑动聚合(Sliding Aggregate)
年初至今(Year-to- Date)

累计聚合是对序列(通常是时间顺序)内从第一个元素到当前元素的数据进行聚合运算。

计算一个聚合时可以使用子查询,计算多个聚合时使用联接。

常见问题:计算每个雇员从开始有订单操作以来到该月份处理过的订单总量和每月平均量

因为有两个聚合(订单总量、每月平均量),要使用联接

select o1.orderid,
o1.orederMonth,
o1.qty,
sum(o2.qty) as totalqty,
avg(o2.qty) as avgqty
from orderdeatil as o1
join orderdetail as o2
on o1.orderid =o2.orderid and o2.orderMonth<=o1.ordermonth
group by o1.orderid ,o1.ordermonth,o1.qty
order by o1.orderid ,o1.ordermonth;

如果还有过滤条件,要使用having子句。
比如:求累计总量达到1000之前的每月聚合值

补充:where和having都是过滤数据;
where后面跟的是属性(列),不能跟聚合函数;
having后面可以跟聚合函数(基本上都是),但聚合的列不一定是group by 后面的列。也有情况不是聚合函数,但后面的列必须是group by后面的列

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值