med row_number()
och en härledd tabell för att begränsa varje recipient
till sina topp 3 mottagna belopp och gruppera sedan efter recipient
returnerar de som 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
returnerar:
+--------------+
| account_name |
+--------------+
| Johnson |
| Taylor |
+--------------+
rextester postgres demo:http://rextester.com/PFR74297
Frågan redigerades som tog bort en del relevant information från tredje versionen av frågan :vad som redan har provats.
Baserat på den informationen drog jag slutsatsen att OP ville hitta recipient
som fick en sum(amount)>=1024
från 3 eller färre av någon av den mottagarens överföringar -- inte begränsat till de mottagare med 3 eller färre överföringar och sum(amount)>=1024
.