我不知道您使用的是哪一个版本的SQL,但是分析功能可以帮助您,尽管在旧的MySQL版本中不可用。
如果您可以使用分析功能,那么类似这样的功能可能会起作用:
SELECT country,
customer_name,
total_purchased
FROM (
SELECT
country,
customer_name,
total_purchased,
RANK() OVER (PARTITIONED BY country ORDER BY total_purchased DESC) as rank
FROM total
) a
WHERE rank = 1
SELECT a.country,
a.customer_name,
a.total_purchased
FROM total a
JOIN (
SELECT
country,
MAX(total_purchased) AS max_purchased
FROM total
GROUP BY country
) b
ON a.country = b.country
AND a.total_purchased = b.max_purchased
此查询应具有预期的结果。如果2个客户的总购买价值相同。结果将显示两个客户。