题解 | #10月的新户客单价和获客成本 预处理#
10月的新户客单价和获客成本
https://www.nowcoder.com/practice/d15ee0798e884f829ae8bd27e10f0d64
使用CTE语法来进行预处理
with t2 as (
select
order_id,
sum(price) sumprice
from tb_order_detail tod
group by order_id
#获取每单商品单价之和
),
t3 as (
select
uid,
order_id,
rank() over (partition by uid order by event_time) n,
total_amount
from tb_order_overall
where date_format(event_time,'%Y-%m')
#过滤掉日期不符的,并且先给上排号
)
select
round(avg(total_amount),1) avg_amount,#这就是核心逻辑
round(avg(sumprice-t3.total_amount),1) avg_cost#这就是核心逻辑
from
t2 right join t3 on t2.order_id=t3.order_id
where n=1;
最近在研究Hive的数据倾斜问题,有个处理方法就是对数据进行预处理,减少join的数据条数
CTE YYDS!
查看9道真题和解析