WITH ts AS (
    SELECT
        merchant_id,
        SUM(sale_amount) total_sales_amount
    FROM sales_underline
    GROUP BY merchant_id
),
tr AS (
    SELECT
        merchant_id,
        SUM(refund_amount) total_refund_amount
    FROM refunds_underline
    GROUP BY merchant_id
),
as1 AS (
    SELECT
        merchant_id,
        ROUND(AVG(satisfaction_score),2) average_satisfaction_score
    FROM satisfaction_underline
    GROUP BY merchant_id
)
SELECT 
    mu.merchant_id,
    mu.merchant_name,
    total_sales_amount,
    total_refund_amount,
    average_satisfaction_score
FROM merchants_underline mu
JOIN ts ON ts.merchant_id = mu.merchant_id
JOIN tr ON tr.merchant_id = mu.merchant_id
JOIN as1 ON as1.merchant_id = mu.merchant_id
ORDER BY mu.merchant_id