Dies ist eine etwas sexyere Version einiger anderer Antworten - beachten Sie die Verwendung von sum(100)
um das längere (und banalere) count(*) * 100
zu vermeiden :)
select name, count(*) as count, sum(100) / total as percentage
from namelist
cross join (select count(*) as total from namelist) x
group by 1