One way
Declare @sql nvarchar(max);
select @sql = 'Select ' + String_Agg('Cast(100-100.*Count(' + QuoteName(c.name) + ')/Count(*) As decimal(5,2)) As ' + QuoteName(c.name), ',') + 'from ' + max(t.name)
from sys.tables t
Inner join sys.columns c on t.object_id = c.object_id
where t.name = 'tblname'
Exec sp_executesql @alenzi ;
Replace 'tblname' with the name of your table.
Tom