我有这个Event
模型
class Event < ActiveRecord::Base
attr_accessible :starts_at, :ends_at, :price
end
AnEvent
可以是单个即时事件:
Event.create(:starts_at => Date.today, :ends_at=>nil, :price => 10.0)
它也可以跨越数天或数月:
Event.create(:starts_at => Date.today, :ends_at => (Date.today + 2.months), :price => 20.0)
我想按月分解事件的成本,因此即时事件的成本自然会落入它所属的月份,而跨越多个月的事件的成本应该在这些月份之间按比例分配。
显然这很难使用 SQL 来处理,但也许有人对此有一些建议?
计算这种聚合的最有效方法是什么?
更新:
这是 sqlfiddle 上数据的明确定义的结构:http ://sqlfiddle.com/#!12/a532e/6
我想从这个数据集中得到类似的东西:
( (Date('2013-01-01'), 31.6), (Date('2013-02-01'), 8.4) )