Dit is een iets sexyre versie van sommige van de andere antwoorden - let op het gebruik van sum(100)
om de langere (en meer alledaagse) count(*) * 100
. te vermijden :)
select name, count(*) as count, sum(100) / total as percentage
from namelist
cross join (select count(*) as total from namelist) x
group by 1