menggunakan row_number() dan tabel turunan untuk membatasi setiap recipient ke 3 jumlah teratas yang diterima, lalu dikelompokkan berdasarkan recipient mengembalikan mereka yang memiliki sum(amount)>=1024
select recipient as account_name
from (
select *
, row_number() over (
partition by recipient
order by amount desc
) as rn
from transfers
) as i
where rn < 4
group by recipient
having sum(amount)>=1024
kembali:
+--------------+
| account_name |
+--------------+
| Johnson |
| Taylor |
+--------------+
demo rextester postgres:https://rextester.com/PFR74297
Pertanyaan telah diedit sehingga menghapus beberapa informasi terkait dari revisi ketiga pertanyaan :apa yang sudah mencoba.
Berdasarkan informasi itu, saya menyimpulkan bahwa OP ingin menemukan recipient yang menerima sum(amount)>=1024 dari 3 atau kurang dari transfer penerima mana pun -- tidak terbatas pada penerima dengan 3 atau lebih sedikit transfer dan sum(amount)>=1024 .