Answer:
with species_revenue as
(select c.species,
sum(o.totalamount) as totalrevenue
from orders o
join customers c on o.customerid = c.customerid
group by c.species)
select species,
totalrevenue,
rank() over (
order by totalrevenue desc) as revenuerank,
cume_dist() over (
order by totalrevenue desc) as revenuecumedist
from species_revenue;