met behulp van row_number()
en een afgeleide tabel om elke recipient
te beperken naar hun top 3 ontvangen bedragen, vervolgens groeperen op recipient
het retourneren van degenen met 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
retourneert:
+--------------+
| account_name |
+--------------+
| Johnson |
| Taylor |
+--------------+
rextester postgres demo:http://rextester.com/PFR74297
De vraag is bewerkt waardoor een aantal relevante informatie is verwijderd uit de derde revisie van de vraag :wat al geprobeerd is.
Op basis van die informatie concludeerde ik dat OP recipients
. wilde vinden die een sum(amount)>=1024
. ontving vanaf 3 of minder overschrijvingen van die ontvanger -- niet beperkt tot die ontvangers met 3 of minder overschrijvingen en sum(amount)>=1024
.