Das geht nur mit der CTE:

with
xArt as
(select Art, sum(stunden) xsumart from stunden_db group by Art
)
,
xSum as (select sum(stunden) as xsum from Art)
select xart.*, xsumart*100/xsum
from xart, xsumart

Durch diesen Trick wird ein Crossjoin mit der Totalen gebildet.