ved hjælp af row_number() og en afledt tabel for at begrænse hver recipient til deres top 3 modtagne beløb, derefter gruppering efter recipient returnerer dem, der har 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
returnerer:
+--------------+
| account_name |
+--------------+
| Johnson |
| Taylor |
+--------------+
rextester postgres demo:https://rextester.com/PFR74297
Spørgsmålet blev redigeret, der fjernede nogle relevante oplysninger fra 3. revision af spørgsmålet :hvad der allerede er prøvet.
Baseret på den information konkluderede jeg, at OP ønskede at finde recipients der modtog en sum(amount)>=1024 fra 3 eller færre af nogen af den pågældende modtagers overførsler -- ikke begrænset til de modtagere med 3 eller færre overførsler og sum(amount)>=1024 .