假设一个学生每天只吃1颗糖。我需要知道一个学生在开学前吃了多少糖果(如红色字体的 "开学前一年共吃了多少糖果 "一栏所示)。我的数据如表格中的黑色字体所示。我计算了高亮的那一列。我已经提供了如何计算 "Total_candies_consumed_one_year_before_start_of_school "的理由。
我被困在如何排除 "1_year_lookback_period "之前和 "开学日期 "之后发生的计数。
任何帮助都是非常感激的。
我想你正在寻找某种线性回归。
我的想法是评估在开学前的一年中,有多少人吃了糖果。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
身份证