Answer:
with rankedtransactions as
(select customerid,
transactionid,
transactiondate,
row_number() over (partition by customerid
order by transactiondate) as transactionrank
from transaction)
select customerid,
transactionid,
transactiondate
from rankedtransactions
where transactionrank = 1;