我在 CS 问题网站上遇到了这个问题,但我不知道该怎么做。
我的第一个解决方案在这段代码中陷入了死胡同
SELECT
recipient
FROM
transfers
GROUP BY
recipient
HAVING
sum(amount) >= 1024
ORDER BY
recipient ASC;
但是没有办法限制总和以求最大 3 个值的总和。
另一个想法是创建一个子查询并连接两个表。
像这样
SELECT
recipient,
( SELECT SUM(amount)
FROM transfer t1
WHERE t1.recipient = t.recipient ORDER BY amount DESC LIMIT 3) as summedValue
FROM
transfer t
然而,这总结了所有的价值,而不仅仅是前三名。