我有一个ActiveRecord架构,PurchaseSummary,我继承了,我不能改变它看起来像这样:
purchase_summaries
date date_of_purchase
integer number_of_purchases
boolean coupon_used
例如,对于11月1日,有800次购买,500次没有优惠券,300次有优惠券,11月2日,600次购买没有优惠券,100次购买,因此数据库中的行看起来像这样: / p>
2011-11-01, 500, false
2011-11-01, 300, true
2011-11-02, 600, false
2011-11-02, 100, true
例如,11/1的购买总数为800和11/2 700。
问题:我想构建一个每天返回的查询,使用优惠券的购买百分比,或
2011-11-01, 0.375
2011-11-02, 0.142
答案 0 :(得分:0)
不是最优化的方式,但您可以执行以下操作:
select date_of_purchase
,sum(number_of_purchases) / (select sum(subquery.number_of_purchases)
from purchase_summaries subquery
where subquery.date_of_purchase = query.date_of_purchase
and subquery.coupon_used = 1) * 100 as percentage
from purchase_summaries query
group by date_of_purchase