1

CS の質問サイトでこの問題に遭遇しましたが、これを行う方法がわかりません。

問題

私の最初の解決策は、このコードで行き詰まりました

SELECT 
 recipient
FROM 
 transfers
GROUP BY
 recipient
HAVING
 sum(amount) >= 1024
ORDER BY
 recipient ASC;

ただし、最大の 3 つの値を合計するために合計に制限を設ける方法はありません。

もう 1 つのアイデアは、サブクエリを作成して 2 つのテーブルを結合することでした。

そのようです

SELECT
recipient,
(   SELECT SUM(amount)
    FROM transfer t1
    WHERE t1.recipient = t.recipient ORDER BY amount DESC LIMIT 3) as summedValue
FROM
transfer t

ただし、これは上位 3 つだけでなく、すべての値を合計したものです。

4

1 に答える 1