计算前期总计,不包括回顾前和参考年后的计数

ia2d9nvy  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(329)

假设一个学生每天只吃一块糖果。我需要知道一个学生在开学前吃了多少糖果(如红色字体的“开学前一年糖果总摄入量”一栏所示)。我的数据如黑色字体的表格所示。我计算了突出显示的列。我提供了如何计算“开学前一年糖果消费总量”的基本原理。

我被困在如何排除“1年回顾期”之前和“开学日期”之后发生的计数。
非常感谢您的帮助。

pwuypxnk

pwuypxnk1#

我认为你在寻找某种线性回归。
这个想法是为了评估在前一年吃了多少糖果 school_start_date 通过计算此期间与 purchase_date 以及 consumed_date 糖果的味道。根据重叠率,可以预测回溯期间的消耗。
这应该是你想要的:

select
    t.*,
    number_of_candies *
        greatest(
            least(school_start_date, consumed_date) 
            - greatest(purchase_date, add_months(school_start_date, -12)), 
            0
        ) / (consumed_date - purchase_date) candies_consumed_during_loopback
from mytable t

db小提琴演示:

ID | PURCHASE_DATE | NUMBER_OF_CANDIES | CONSUMED_DATE | SCHOOL_START_DATE | RES
-: | :------------ | ----------------: | :------------ | :---------------- | --:
 1 | 30-DEC-09     |                15 | 14-JAN-10     | 01-JAN-11         |  13
 1 | 30-MAY-10     |                30 | 29-JUN-10     | 01-JAN-11         |  30
 2 | 01-NOV-10     |                90 | 30-JAN-11     | 01-JAN-11         |  61
 2 | 09-AUG-12     |                15 | 24-AUG-12     | 01-JAN-11         |   0
 3 | 01-DEC-14     |               900 | 19-MAY-17     | 01-JAN-16         | 365

相关问题