WITH
t1 AS (     -- 计算商家总销售额
    SELECT
        merchant_id,
        SUM(sale_amount) AS total_sales_amount
    FROM sales_underline
    GROUP BY merchant_id
),

t2 AS (     -- 计算商家总退款额
    SELECT      
        merchant_id,
        SUM(refund_amount) total_refund_amount
    FROM refunds_underline
    GROUP BY merchant_id
),

t3 AS (     -- 计算商家满意度
    SELECT
        merchant_id,
        AVG(satisfaction_score) AS average_satisfaction_score
    FROM satisfaction_underline
    GROUP BY merchant_id
)

SELECT      -- 表连接,汇总所有指标并且排序
    a.merchant_id,
    a.merchant_name,
    t1.total_sales_amount,
    t2.total_refund_amount,
    ROUND(t3.average_satisfaction_score,2) AS average_satisfaction_score
FROM t1
INNER JOIN t2
    ON t1.merchant_id = t2.merchant_id
INNER JOIN t3
    ON t1.merchant_id = t3.merchant_id
RIGHT JOIN merchants_underline AS a
    ON t1.merchant_id = a.merchant_id
ORDER BY t1.merchant_id;