面试题答案
一键面试SELECT
c.customer_name,
SUM(o.order_amount) AS total_order_amount
FROM
customers c
JOIN
orders o ON c.customer_id = o.customer_id
GROUP BY
c.customer_name, c.region
HAVING
SUM(o.order_amount) > (
SELECT
AVG(sub.total_order_amount)
FROM
(
SELECT
c1.customer_id,
SUM(o1.order_amount) AS total_order_amount
FROM
customers c1
JOIN
orders o1 ON c1.customer_id = o1.customer_id
GROUP BY
c1.customer_id
) sub
WHERE
sub.customer_id IN (
SELECT
c2.customer_id
FROM
customers c2
WHERE
c2.region = c.region
)
);