题解 | #10月的新户客单价和获客成本#

10月的新户客单价和获客成本

http://www.nowcoder.com/practice/d15ee0798e884f829ae8bd27e10f0d64

第一次速度击败了100%的人,只用总和处于人数就可以,没用到题解的在对id进行商品的聚合,所以会快很多 用了 () in (select)来匹配每个用户的第一次订单,

select round(amount/num,1) ,
       round((cost-amount)/num,1)
from
(select sum(price*cnt) as cost,
       count(distinct uid) as num,
       sum(distinct total_amount) as amount
from  tb_order_detail de 
left join  tb_product_info info  using(product_id)
left join tb_order_overall ov  using(order_id)
where (uid ,event_time) in (select uid,min(event_time)
                    from tb_order_overall  group by uid)
       and left(event_time,7)="2021-10" and status=1) tmp


全部评论
where (uid,event_time) in 查询出来的表里uid不是唯一的么? 为啥count(uid)必须要distinct,不然就算错呢
点赞 回复 分享
发布于 2022-09-06 15:08 湖北
tmp中的是唯一的一对,但是uid和event_time 可能存在多对与tmp中相同,所以要去重
点赞 回复 分享
发布于 2022-09-06 22:02 上海

相关推荐

拉丁是我干掉的:把上海理工大学改成北京理工大学。成功率增加200%
点赞 评论 收藏
分享
4 1 评论
分享
牛客网
牛客企业服务