pomocí row_number()
a odvozenou tabulku pro omezení každého recipient
k jejich nejvyšším 3 obdrženým částkám a poté seskupení podle recipient
vrací ty, které mají 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
vrátí:
+--------------+
| account_name |
+--------------+
| Johnson |
| Taylor |
+--------------+
rextester postgres demo:http://rextester.com/PFR74297
Otázka byla upravena tak, že byly odstraněny některé relevantní informace z 3. revize otázky :co už bylo vyzkoušeno.
Na základě těchto informací jsem usoudil, že OP chtěl najít recipient
který obdržel sum(amount)>=1024
ze 3 nebo méně všech převodů tohoto příjemce – neomezuje se na ty příjemce se 3 nebo méně převody a sum(amount)>=1024
.