Ini adalah versi yang sedikit lebih seksi dari beberapa jawaban lain - perhatikan penggunaan sum(100)
untuk menghindari count(*) * 100
. yang lebih panjang (dan lebih biasa) :)
select name, count(*) as count, sum(100) / total as percentage
from namelist
cross join (select count(*) as total from namelist) x
group by 1