SELECT ROUND(AVG(total_amount), 1) AS avg_amount,
ROUND(AVG(cost), 1) AS avg_cost
FROM (
SELECT uid, order_id, total_amount,
(SUM(price * cnt) - total_amount) AS cost
FROM (
SELECT uid, order_id, total_amount, status, event_time,
ROW_NUMBER() OVER(PARTITION BY uid ORDER BY event_time) AS first_rank
FROM tb_order_overall
) first_purchase_t
JOIN tb_order_detail
USING(order_id)
WHERE first_rank = 1
AND DATE_FORMAT(event_time, '%Y-%m') = '2021-10'
AND status = 1
GROUP BY uid, order_id, total_amount
) amount_t