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:http://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
.