PURCHASE_DATE

问题描述 投票:0回答:1

假设一个学生每天只吃1颗糖。我需要知道一个学生在开学前吃了多少糖果(如红色字体的 "开学前一年共吃了多少糖果 "一栏所示)。我的数据如表格中的黑色字体所示。我计算了高亮的那一列。我已经提供了如何计算 "Total_candies_consumed_one_year_before_start_of_school "的理由。enter image description here

我被困在如何排除 "1_year_lookback_period "之前和 "开学日期 "之后发生的计数。

任何帮助都是非常感激的。

sql netezza
1个回答
1
投票

我想你正在寻找某种线性回归。

我的想法是评估在开学前的一年中,有多少人吃了糖果。school_start_date 计算这一时期与""定义的日期范围之间的重叠天数。purchase_dateconsumed_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 Fiddle上的演示:

身份证 
© www.soinside.com 2019 - 2024. All rights reserved.