此题共包含三张表:

表1:tb_order_detail 表2:tb_order_overall 表3:tb_product_info

要解决的问题:

请计算2021年10月商城里所有新用户的首***均交易金额(客单价)和平均获客成本(保留一位小数)。

注:订单的优惠金额 = 订单明细里的{该订单各商品单价×数量之和} - 订单总表里的{订单总金额} 。

解题思路:

  1. 找到2021年10月的订单商品单价,购买数量和订单总金额,并计算订单的优惠金额
  2. 本题首单是解题关键,where条件取min(event_time)并以UID为分组
  3. 计算平均交易金额和平均获客成本
SELECT ROUND(avg(total_amount),1) avg_amount, ROUND(avg(cost),1) avg_cost
FROM(
    SELECT tod.order_id, total_amount, sum(price*cnt)-total_amount cost
    from tb_product_info tpi
    join tb_order_detail tod
    on tpi.product_id = tod.product_id
    join tb_order_overall too
    on too.order_id = tod.order_id
    where DATE_FORMAT(event_time,'%Y%m') = '202110'
    and (uid,event_time) in(select uid ,min(event_time)from tb_order_overall GROUP BY uid)
    GROUP BY tod.order_id, total_amount
) temp