oracle根据当前月份往前,Oracle SQL - 根据月份对时间序列分区求和

我正在使用如下所示的数据集:

MTD | ID | Active

-----------------------

01-APR-16 | A | y

01-MAY-16 | A | y

01-JUN-16 | A | n

01-JUL-16 | A | y

01-AUG-16 | A | n

01-APR-16 | B | n

01-MAY-16 | B | y

01-JUN-16 | B | y

01-JUL-16 | B | y

01-AUG-16 | B | y

我想在数据集中添加一个计数列,用于计算ID在当前MTD之后的活动次数(' y')。所需的输出是:

MTD | ID | Active | COUNT

-------------------------------

01-APR-16 | A | y | 2

01-MAY-16 | A | y | 1

01-JUN-16 | A | n | 1

01-JUL-16 | A | y | 0

01-AUG-16 | A | n | 0

01-APR-16 | B | n | 4

01-MAY-16 | B | y | 3

01-JUN-16 | B | y | 2

01-JUL-16 | B | y | 1

01-AUG-16 | B | y | 0

我想到的问题是:

SELECT

MTD,

ID,

ACTIVE,

SUM(CASE WHEN MTD > (current records MTD)

AND ACTIVE = 'y' THEN 1 ELSE 0 END)

OVER (PARTITION BY ID)

as COUNT

我不确定如何将每个记录的MTD与窗口总和中当前记录的MTD进行比较。如何修改案例陈述的第一行?

谢谢,

Ryan Barker

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值