WITH t1 AS ( SELECT c.customer_id, c.customer_name, o.order_id, o.order_date, oi.sku, oi.qty, oi.price FROM customers c LEFT JOIN orders o ON o.customer_id = c.customer_id AND MONTH(order_date) = 2 LEFT JOIN order_items oi ON oi.order_id = o.order_id ), -- 2月订单数 t2 AS ( SELECT customer_id,customer_name,COUNT(DISTINCT order_id) AS feb_2024_order_count FROM t1 GROUP BY customer_id,customer_name ), -- 2月订单总金额 t3 AS ( SELECT customer_id,SUM(qty * price) AS feb_2024_total_amount FROM t1 GROUP BY customer_id ), -- 2月首次/末次下单日期 t4 AS( SELECT DISTINCT customer_id, FIRST_VALUE(order_date)OVER(PARTITION BY customer_id) AS feb_2024_last_order_date, LAST_VALUE(order_date)OVER(PARTITION BY customer_id) AS feb_2024_first_order_date FROM t1 ) SELECT t2.customer_id, t2.customer_name, t2.feb_2024_order_count, COALESCE(t3.feb_2024_total_amount,0) AS feb_2024_total_amount, CASE WHEN t2.feb_2024_order_count = 0 THEN 0.00 WHEN t2.feb_2024_order_count != 0 THEN ROUND(t3.feb_2024_total_amount/t2.feb_2024_order_count,2) END AS feb_2024_avg_order_amount, t4.feb_2024_first_order_date, t4.feb_2024_last_order_date FROM t2 LEFT JOIN t3 ON t3.customer_id = t2.customer_id LEFT JOIN t4 ON t4.customer_id = t2.customer_id ORDER BY feb_2024_total_amount DESC,t2.customer_id ASC

京公网安备 11010502036488号