en utilisant row_number()
et une table dérivée pour limiter chaque recipient
à leurs 3 premiers montants reçus, puis regroupement par recipient
renvoyant ceux qui ont 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
renvoie :
+--------------+
| account_name |
+--------------+
| Johnson |
| Taylor |
+--------------+
démo rextester postgres :http://rextester.com/PFR74297
La question a été modifiée pour supprimer certaines informations pertinentes de la 3ème révision de la question :ce qui a déjà été essayé.
Sur la base de ces informations, j'ai conclu qu'OP voulait trouver des recipients
qui a reçu un sum(amount)>=1024
à partir de 3 ou moins de n'importe lequel des transferts de ce destinataire -- non limité aux destinataires avec 3 transferts ou moins et sum(amount)>=1024
.