usando row_number()
y una tabla derivada para limitar cada recipient
a sus 3 cantidades principales recibidas, luego agrupando por recipient
devolviendo aquellos que tienen 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
devuelve:
+--------------+
| account_name |
+--------------+
| Johnson |
| Taylor |
+--------------+
demostración de rextester postgres:http://rextester.com/PFR74297
Se editó la pregunta que eliminó parte de la información pertinente de la 3ra revisión de la pregunta :lo que ya se intentó.
Basándome en esa información, llegué a la conclusión de que OP quería encontrar recipients
que recibió un sum(amount)>=1024
de 3 o menos de cualquiera de las transferencias de ese destinatario, sin limitarse a aquellos destinatarios con 3 o menos transferencias y sum(amount)>=1024
.