假设一个学生每天只吃一块糖果。我需要找出一个学生在开学前(如“开学前一年的糖果消费总量”一栏所示)和开学后一年内(如“开学后一年的糖果消费总量”一栏所示)用红色字体显示的糖果消费量。我的数据如黑色字体的表格所示。我计算了突出显示的列。我已经提供了计算“开学前一年糖果消费总量”和计算“开学后一年糖果消费总量”的基本原理。
棘手的部分是如何排除“开学日期”之前和一年展望期结束后发生的计数。
@gmb解决了如何计算
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].
有没有办法修改上述代码为1年后期间。我试过把'-12'换成12,但没用。我把最不重要的东西翻到了最重要的括号里,但没有用。
如果有人能告诉我如何修改上述代码,以计算1年后期间,这将是可怕的!
1条答案
按热度按时间ut6juiuv1#
感谢jack douglas为整个解决方案提供了更简洁的方法: