【发布时间】:2017-08-20 21:46:23
【问题描述】:
我在一个 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
但是,它汇总了所有值,而不仅仅是前三个值。
【问题讨论】:
标签: sqlite aggregate-functions limit-per-group