Това е малко по-секси версия на някои от другите отговори - обърнете внимание на използването на sum(100)
за да избегнете по-дългите (и по-обикновени) count(*) * 100
:)
select name, count(*) as count, sum(100) / total as percentage
from namelist
cross join (select count(*) as total from namelist) x
group by 1