题解 | #零食类商品中复购率top3高的商品#

零食类商品中复购率top3高的商品

http://www.nowcoder.com/practice/9c175775e7ad4d9da41602d588c5caf3

1.tb1表是为了求出不同的人(uid),在近90天所购买不同商品的次数(product_id) 此处注意要最大日期减去89天才是确切的区间范围,如果减去90天会导致最后一组用例不通过!!!

2.求出商品总的购买人数 并且 左连接 商品购买次数大于二的人数,必须左连,不然商品购买次数没有大于二的数据会缺失!!!

3.求解,ifnull也必须要有,原因是分子可能为null值,即商品购买次数大于2的值可能会null(tips:对at2加ifnull没用,因为count不会出现null值,此处null值是因为第二步的左连接而出现的)

select t3.uid,t1.product_id,count(*) ant
from tb_product_info t1 join tb_order_detail t2 using(product_id) join tb_order_overall t3 using(order_id)
where t1.tag='零食' and t3.event_time between date_sub((select max(event_time) from tb_order_overall),interval 89 day) 
                                         and (select max(event_time) from tb_order_overall) and t3.status=1
group by t3.uid,t1.product_id
)
select T1.product_id id,ifnull(round(T2.at2/T1.at1,3),0) at3
from(
select product_id,count(*) at1
from tb1
group by product_id
)as T1
left join(
select product_id,count(*) at2
from tb1
where ant>=2
group by product_id
)as T2 using(product_id)
order by at3 desc,id asc
limit 3
全部评论

相关推荐

05-12 18:24
长安大学 UE4
因为是家里第一代大学生,报专业报学校都没人可以指导,只能自己看着来毕业找工作,父母只知道考公务员啊考教师啊,丝毫不考虑难度我说要去大城市打工才行,小县城对学历没有需求,开的工资都很低,两三千养活不了的结果都不同意我去大城市,觉得北上广深远,不稳定,一年到头不着家,养这么大孩子算白养了要我怎么办,不考公不考编就是死路一条呗,出去打工就是不孝呗可是考公考编也好难,考上也是小职员,到时候又变成了家里第一代体制内了,不还是样样靠自己有时候很羡慕同学,要去大城市打拼,家里都很支持去看看外面的世界也羡慕同学父母都是体制内的,考上还有所依靠家里没有办法给予帮助,简直是进入死胡同一样
Two_Shadow:你先拿到offer,路是自己走的,你真去了谁拦得住你呢,不用给自己扣帽子,我也是我家第一代大学生啊,农村人,高考96个志愿我就填50多个计算机,爸妈让我填满保底我说我不,我就学计算机,上大学了让我考研我说我不考,我就喜欢干活,现在签了offer,他们也释怀,不回家就努力提升自己,就往家里打钱,就开视频,还能怎么样呢,路是自己走的,他们只是希望你能走得好一点,但大部分父母,尤其是农村父母根本帮不了你什么,难道你就不走路了吗,希望能骂醒你,不要想太多做太少。
点赞 评论 收藏
分享
04-06 11:24
已编辑
太原学院 C++
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务